]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.proconf.g3d/src/org/simantics/proconf/g3d/base/ThreeDimensionalEditorPart.java
Selection events coming from other editors/views should be fixed.
[simantics/3d.git] / org.simantics.proconf.g3d / src / org / simantics / proconf / g3d / base / ThreeDimensionalEditorPart.java
index f2f3bc121eb7f15657d3f212d3c994bdea9bed04..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
@@ -139,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
@@ -161,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