diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionOutlinePage.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionOutlinePage.java index d9afc560e3a9ab165f30a38de49ea5b609ea0a29..4ec90be5429a0322970e010ca01c1e1d7a78b2dc 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionOutlinePage.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionOutlinePage.java @@ -100,7 +100,7 @@ public class BMotionOutlinePage extends ContentOutlinePage { } private void initializeOutlineViewer() { - // getViewer().setContents(viewPart.getVisualization()); + getViewer().setContents(viewPart.getVisualization()); } /** diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioLauncher.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioLauncher.java index 621759f759dcdea4a0c02fc88a37a1896de83896..5f3e0016853a41aae2df0d4941d0ca7102de5aea 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioLauncher.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioLauncher.java @@ -12,6 +12,7 @@ import org.eclipse.ui.IEditorLauncher; import org.eclipse.ui.IViewReference; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchPartSite; +import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import com.thoughtworks.xstream.XStream; @@ -43,6 +44,7 @@ public class BMotionStudioLauncher implements IEditorLauncher { if (simulation != null) { PerspectiveUtil.openPerspective(simulation); + initViews(simulation); // // IPerspectiveDescriptor perspective = PlatformUI.getWorkbench() // .getPerspectiveRegistry() @@ -93,10 +95,6 @@ public class BMotionStudioLauncher implements IEditorLauncher { BMotionEditorPlugin.setAliases(xstream); Object obj = xstream.fromXML(inputStream); - IWorkbenchPage activePage = PlatformUI.getWorkbench() - .getActiveWorkbenchWindow().getActivePage(); - IWorkbenchPartSite site = activePage.getActivePart().getSite(); - if (obj instanceof Visualization) { simulation = new Simulation(); @@ -120,53 +118,8 @@ public class BMotionStudioLauncher implements IEditorLauncher { simulation.setProjectFile(file); - System.out.println("Open Perspecitve"); PerspectiveUtil.openPerspective(simulation); - - for (Map.Entry<String, VisualizationView> entry : simulation - .getVisualizationViews().entrySet()) { - - String secId = entry.getKey(); - VisualizationView visView = entry.getValue(); - Visualization vis = visView.getVisualization(); - vis.setProjectFile(file); - // String partName = visView.getPartName(); - IViewReference viewReference = site.getPage() - .findViewReference(VisualizationViewPart.ID, secId); - VisualizationViewPart visualizationViewPart; - // Check if view already exists - if (viewReference != null) { - visualizationViewPart = (VisualizationViewPart) viewReference - .getPart(true); - System.out.println(" ===> Visualization found: " - + visualizationViewPart); - } else { - // If not, create a new one - visualizationViewPart = PerspectiveUtil - .createVisualizationViewPart(secId, visView); - System.out.println(" ===> Visualization created: " - + visualizationViewPart); - } - - if (visualizationViewPart != null - && !visualizationViewPart.isInitialized()) { - System.out - .println(" ===> Visualization initialized"); - visualizationViewPart.init(simulation, visView); - } - - } - - // Close all unused visualization views - for (IViewReference viewReference : site.getPage() - .getViewReferences()) { - if (viewReference.getId().equals(VisualizationViewPart.ID)) { - if (!simulation.getVisualizationViews().containsKey( - viewReference.getSecondaryId())) - site.getPage().hideView(viewReference); - } - } - + initViews(simulation); BMotionEditorPlugin.openSimulation(simulation); } @@ -178,11 +131,65 @@ public class BMotionStudioLauncher implements IEditorLauncher { if (inputStream != null) inputStream.close(); } catch (IOException e) { - // TODO Auto-generated catch block e.printStackTrace(); } } } + private void initViews(Simulation simulation) { + + IWorkbenchPage activePage = PlatformUI.getWorkbench() + .getActiveWorkbenchWindow().getActivePage(); + IWorkbenchPartSite site = activePage.getActivePart().getSite(); + + for (Map.Entry<String, VisualizationView> entry : simulation + .getVisualizationViews().entrySet()) { + + String secId = entry.getKey(); + VisualizationView visView = entry.getValue(); + Visualization vis = visView.getVisualization(); + vis.setProjectFile(file); + // String partName = visView.getPartName(); + IViewReference viewReference = site.getPage().findViewReference( + VisualizationViewPart.ID, secId); + VisualizationViewPart visualizationViewPart = null; + // Check if view already exists + if (viewReference != null) { + visualizationViewPart = (VisualizationViewPart) viewReference + .getPart(true); + System.out.println(" ===> Visualization found: " + + visualizationViewPart); + } else { + // If not, create a new one + try { + visualizationViewPart = PerspectiveUtil + .createVisualizationViewPart(secId, visView); + } catch (PartInitException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println(" ===> Visualization created: " + + visualizationViewPart); + } + + if (visualizationViewPart != null + && !visualizationViewPart.isInitialized()) { + System.out.println(" ===> Visualization initialized"); + visualizationViewPart.init(simulation, visView); + } + + } + + // Close all unused visualization views + for (IViewReference viewReference : site.getPage().getViewReferences()) { + if (viewReference.getId().equals(VisualizationViewPart.ID)) { + if (!simulation.getVisualizationViews().containsKey( + viewReference.getSecondaryId())) + site.getPage().hideView(viewReference); + } + } + + } + } diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationViewPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationViewPart.java index d79371a09e65e9b813339f7db51d516880b7b756..20d728051248e70211f312e24a07ec6b25055818 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationViewPart.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationViewPart.java @@ -74,6 +74,8 @@ public class VisualizationViewPart extends ViewPart implements private VisualizationView visualizationView; + private Visualization visualization; + private ActionRegistry actionRegistry; private BMotionStudioEditor editor; @@ -322,6 +324,7 @@ public class VisualizationViewPart extends ViewPart implements getCommandStack().removeCommandStackListener(this); if (getActionRegistry() != null) getActionRegistry().dispose(); + setInitialized(false); } @Override @@ -374,6 +377,8 @@ public class VisualizationViewPart extends ViewPart implements public void init(Simulation simulation, VisualizationView visualizationView) { this.simulation = simulation; + this.visualizationView = visualizationView; + this.visualization = visualizationView.getVisualization(); this.graphicalViewer = new ScrollingGraphicalViewer(); this.graphicalViewer.createControl(this.container); Visualization visualization = visualizationView.getVisualization(); @@ -539,4 +544,8 @@ public class VisualizationViewPart extends ViewPart implements this.isInitialized = isInitialized; } + public Visualization getVisualization() { + return this.visualization; + } + }