diff --git a/src/main/java/envoy/client/ui/Restorable.java b/src/main/java/envoy/client/ui/Restorable.java
new file mode 100644
index 0000000..e9e40eb
--- /dev/null
+++ b/src/main/java/envoy/client/ui/Restorable.java
@@ -0,0 +1,25 @@
+package envoy.client.ui;
+
+/**
+ * This interface defines an action that should be performed when a scene gets
+ * restored from the scene stack in {@link SceneContext}.
+ *
+ * Project: envoy-client
+ * File: Restorable.java
+ * Created: 03.07.2020
+ *
+ * @author Leon Hofmeister
+ * @since Envoy Client v0.1-beta
+ */
+@FunctionalInterface
+public interface Restorable {
+
+ /**
+ * This method is getting called when a scene gets restored.
+ * Hence, it can contain anything that should be done when the underlying scene
+ * gets restored.
+ *
+ * @since Envoy Client v0.1-beta
+ */
+ void onRestore();
+}
diff --git a/src/main/java/envoy/client/ui/SceneContext.java b/src/main/java/envoy/client/ui/SceneContext.java
index 6b6757e..a027395 100644
--- a/src/main/java/envoy/client/ui/SceneContext.java
+++ b/src/main/java/envoy/client/ui/SceneContext.java
@@ -90,8 +90,9 @@ public final class SceneContext {
}
private final Stage stage;
- private final FXMLLoader loader = new FXMLLoader();
- private final Stack sceneStack = new Stack<>();
+ private final FXMLLoader loader = new FXMLLoader();
+ private final Stack sceneStack = new Stack<>();
+ private final Stack