]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.proconf.g3d/src/org/simantics/proconf/g3d/base/ThreeDimensionalEditorPart.java
git-svn-id: https://www.simantics.org/svn/simantics/3d/branches/dev@9354 ac1ea38d...
[simantics/3d.git] / org.simantics.proconf.g3d / src / org / simantics / proconf / g3d / base / ThreeDimensionalEditorPart.java
index 4ad22bd26d3ce668ec193c1528e073772cbaae6f..702037b6756f26cb4fecf37bedb3321515f83965 100644 (file)
@@ -15,7 +15,6 @@ import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Display;\r
 import org.eclipse.ui.IActionBars;\r
-import org.eclipse.ui.IPartListener;\r
 import org.eclipse.ui.ISelectionListener;\r
 import org.eclipse.ui.IWorkbenchPart;\r
 import org.simantics.db.Graph;\r
@@ -26,7 +25,7 @@ import org.simantics.db.Resource;
 import org.simantics.db.events.GraphChangeEvent;\r
 import org.simantics.db.management.ISessionContext;\r
 import org.simantics.proconf.ui.workbench.ResourceEditorPart;\r
-import org.simantics.utils.ErrorLogger;\r
+import org.simantics.utils.ui.ErrorLogger;\r
 \r
 \r
 public abstract class ThreeDimensionalEditorPart extends ResourceEditorPart implements ThreeDimensionalEditorProvider{\r
@@ -49,33 +48,13 @@ public abstract class ThreeDimensionalEditorPart extends ResourceEditorPart impl
                editor = createEditor(getSessionContext());\r
                \r
             // add partlistener that loads the scene-graph when the view has been created\r
-            this.getEditorSite().getPage().addPartListener(new IPartListener() {\r
-               \r
-               boolean opened = false;\r
-               boolean activated = false;\r
-               \r
-                public void partOpened(IWorkbenchPart part) {\r
-                    if (part.equals(ThreeDimensionalEditorPart.this.getEditorSite().getPart())) {\r
-                        opened = true;\r
-                    }\r
-                }\r
-                \r
-                public void partActivated(IWorkbenchPart part) {\r
-                       if (part.equals(ThreeDimensionalEditorPart.this.getEditorSite().getPart())) {\r
-                        if (opened & !activated) {\r
-                               activated = true;\r
-                               load();\r
-                        }\r
-                       }\r
+            this.getEditorSite().getPage().addPartListener(new EditorLoader() {\r
+\r
+                public IWorkbenchPart getWorkbechPart() {\r
+                       return ThreeDimensionalEditorPart.this.getEditorSite().getPart();\r
                 }\r
                 \r
-                public void partBroughtToTop(IWorkbenchPart part) {}\r
-                \r
-                public void partClosed(IWorkbenchPart part) {}\r
-                \r
-                public void partDeactivated(IWorkbenchPart part) {}\r
-                \r
-                private void load() {\r
+                public void load() {\r
                        //System.out.println("ThreeDimensionalEditorPart.reload()");\r
                     Session ses = ThreeDimensionalEditorPart.this.getSession();\r
                     GraphRequestAdapter r = new GraphRequestAdapter() {\r
@@ -159,12 +138,14 @@ public abstract class ThreeDimensionalEditorPart extends ResourceEditorPart impl
     private void hookPageSelection() {\r
         pageSelectionListener = new ISelectionListener() {\r
             public void selectionChanged(IWorkbenchPart part, ISelection selection) {\r
-                if (part == ThreeDimensionalEditorPart.this)\r
-                    return;\r
+                if (part == ThreeDimensionalEditorPart.this) {\r
+                       return;\r
+                }\r
                 pageSelectionChanged(part, selection);\r
             }\r
         };\r
         getSite().getPage().addPostSelectionListener(pageSelectionListener);\r
+        getSite().getPage().addSelectionListener(pageSelectionListener);\r
         ISelection sel = getSite().getPage().getSelection();\r
         IWorkbenchPart wb = getSite().getPage().getActivePart();\r
         pageSelectionChanged(wb, sel);\r
@@ -181,8 +162,10 @@ public abstract class ThreeDimensionalEditorPart extends ResourceEditorPart impl
     }\r
     \r
     public void dispose() {\r
-       if (pageSelectionListener != null)\r
+       if (pageSelectionListener != null) {\r
             getSite().getPage().removePostSelectionListener(pageSelectionListener);\r
+               getSite().getPage().removeSelectionListener(pageSelectionListener);\r
+       }\r
         editor.dispose();\r
        super.dispose();\r
     }\r