|
|
@@ -70,6 +70,7 @@ class HierarchyFrame extends Atomic.UIWidget {
|
|
|
|
|
|
this.subscribeToEvent(this, "WidgetEvent", (data) => this.handleWidgetEvent(data));
|
|
|
|
|
|
+ this.subscribeToEvent(EditorEvents.EditorResourceClose, (data) => this.handleEditorResourceClosed(data));
|
|
|
this.subscribeToEvent(EditorEvents.ActiveSceneEditorChange, (data) => this.handleActiveSceneEditorChanged(data));
|
|
|
|
|
|
// on mouse up clear the list's drag object
|
|
|
@@ -191,19 +192,17 @@ class HierarchyFrame extends Atomic.UIWidget {
|
|
|
|
|
|
}
|
|
|
|
|
|
- handleActiveSceneEditorChanged(event: EditorEvents.ActiveSceneEditorChangeEvent) {
|
|
|
-
|
|
|
- if (this.scene)
|
|
|
- this.unsubscribeFromEvents(this.scene);
|
|
|
-
|
|
|
- this.sceneEditor = null;
|
|
|
- this.scene = null;
|
|
|
+ setSceneEditor(sceneEditor:Editor.SceneEditor3D) {
|
|
|
|
|
|
- if (!event.sceneEditor)
|
|
|
+ if (this.sceneEditor == sceneEditor) {
|
|
|
return;
|
|
|
+ }
|
|
|
|
|
|
- this.sceneEditor = event.sceneEditor;
|
|
|
- this.scene = event.sceneEditor.scene;
|
|
|
+ if (this.scene)
|
|
|
+ this.unsubscribeFromEvents(this.scene);
|
|
|
+
|
|
|
+ this.sceneEditor = sceneEditor;
|
|
|
+ this.scene = sceneEditor == null ? null : sceneEditor.scene;
|
|
|
|
|
|
this.populate();
|
|
|
|
|
|
@@ -234,6 +233,20 @@ class HierarchyFrame extends Atomic.UIWidget {
|
|
|
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ handleEditorResourceClosed(event) {
|
|
|
+
|
|
|
+ if (this.sceneEditor == event.editor) {
|
|
|
+ this.setSceneEditor(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ handleActiveSceneEditorChanged(event: EditorEvents.ActiveSceneEditorChangeEvent) {
|
|
|
+
|
|
|
+ this.setSceneEditor(event.sceneEditor);
|
|
|
|
|
|
}
|
|
|
|