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
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
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
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
}\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