diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditor.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditor.java index 8dd24ca48b01dc28d36c76957289a31eac1904b6..c4f848996118b6116ac9667e3894f2c1462f6371 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditor.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditor.java @@ -288,11 +288,11 @@ public class BMotionStudioEditor extends EditorPart implements Visualization visualization = (Visualization) obj; visualization.setProjectFile(file); - VisualizationView visualizationView = new VisualizationView( - "New Visualization View", visualization); - String secId = UUID.randomUUID().toString(); + VisualizationView visualizationView = new VisualizationView( + "New Visualization View", visualization, secId); + simulation.getVisualizationViews() .put(secId, visualizationView); @@ -462,7 +462,7 @@ public class BMotionStudioEditor extends EditorPart implements "EventB", version); VisualizationView visualizationView = new VisualizationView( - "New Visulization View", visualization); + "New Visulization View", visualization, secId); simulation.getVisualizationViews().put(secId, visualizationView); 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 5f3e0016853a41aae2df0d4941d0ca7102de5aea..91029f221ce918d41d93d4c8d41317ac4b892da6 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 @@ -102,11 +102,11 @@ public class BMotionStudioLauncher implements IEditorLauncher { Visualization visualization = (Visualization) obj; visualization.setProjectFile(file); - VisualizationView visualizationView = new VisualizationView( - "New Visualization View", visualization); - String secId = UUID.randomUUID().toString(); + VisualizationView visualizationView = new VisualizationView( + "New Visualization View", visualization, secId); + simulation.getVisualizationViews() .put(secId, visualizationView); diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/AddVisualizationViewAction.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/AddVisualizationViewAction.java index 17663ecf077e4dd0048263e6a48eb0f13d221269..f18fdae966505ca026830a0108c9a7c24b83aa44 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/AddVisualizationViewAction.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/AddVisualizationViewAction.java @@ -55,7 +55,7 @@ public class AddVisualizationViewAction extends Action { .getProjectFile().getName(), "EventB", version); VisualizationView visualizationView = new VisualizationView( - "New Visualization View", visualization); + "New Visualization View", visualization, secId); simulation.getVisualizationViews() .put(secId, visualizationView); diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/ControlPanel.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/ControlPanel.java index 188ce206d2b1941cce2a3c580a5d95b357cf6e05..9d7e45ab6778ae0ce1b4d0b43d6943ed9233ff71 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/ControlPanel.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/ControlPanel.java @@ -176,6 +176,8 @@ public class ControlPanel extends ViewPart implements ISimulationListener, treeViewer); final AddVisualizationViewAction addVisualizationViewAction = new AddVisualizationViewAction( treeViewer); + final RemoveVisualizationViewAction deleteVisualizationViewAction = new RemoveVisualizationViewAction( + treeViewer); final Separator separator = new Separator(); MenuManager manager = new MenuManager(); @@ -190,6 +192,8 @@ public class ControlPanel extends ViewPart implements ISimulationListener, manager.add(saveSimulationAction); manager.add(separator); manager.add(addVisualizationViewAction); + } else if (firstElement instanceof VisualizationView) { + manager.add(deleteVisualizationViewAction); } } }); diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/RemoveVisualizationViewAction.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/RemoveVisualizationViewAction.java new file mode 100644 index 0000000000000000000000000000000000000000..6fe1945680736f26142d079d737a0e4dffb5ec33 --- /dev/null +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/controlpanel/RemoveVisualizationViewAction.java @@ -0,0 +1,67 @@ +/** + * (c) 2009 Lehrstuhl fuer Softwaretechnik und Programmiersprachen, + * Heinrich Heine Universitaet Duesseldorf + * This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html) + * */ + +package de.bmotionstudio.gef.editor.controlpanel; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.ITreeSelection; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.ui.IViewReference; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PlatformUI; + +import de.bmotionstudio.gef.editor.BMotionStudioImage; +import de.bmotionstudio.gef.editor.VisualizationViewPart; +import de.bmotionstudio.gef.editor.model.Simulation; +import de.bmotionstudio.gef.editor.model.VisualizationView; + +public class RemoveVisualizationViewAction extends Action { + + private TreeViewer viewer; + + public RemoveVisualizationViewAction(TreeViewer viewer) { + this.viewer = viewer; + setText("Remove View"); + setImageDescriptor(BMotionStudioImage.getImageDescriptor( + "org.eclipse.ui", "$nl$/icons/full/etool16/delete_edit.gif")); + } + + @Override + public void run() { + + IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); + Object firstElement = sel.getFirstElement(); + + if (firstElement instanceof VisualizationView) { + + VisualizationView visView = (VisualizationView) firstElement; + + ITreeSelection selection = ((ITreeSelection) viewer.getSelection()); + Object parent = selection.getPaths()[0].getParentPath() + .getLastSegment(); + + if (parent != null && parent instanceof Simulation) { + + Simulation simulation = (Simulation) parent; + simulation.getVisualizationViews().remove(visView.getViewId()); + viewer.refresh(); + + IWorkbenchPage page = PlatformUI.getWorkbench() + .getActiveWorkbenchWindow().getActivePage(); + + IViewReference viewReference = page.findViewReference( + VisualizationViewPart.ID, visView.getViewId()); + + page.hideView(viewReference); + + } + + } + + } + +} diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/model/VisualizationView.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/model/VisualizationView.java index 040b9c127f7c9aa940a4988d02bc6e8f7ebda5f2..71cc970729e9a06439e0f3b943e27723ba0ab81b 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/model/VisualizationView.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/model/VisualizationView.java @@ -4,10 +4,13 @@ public class VisualizationView { private String name; private Visualization visualization; - - public VisualizationView(String name, Visualization visualization) { + private String viewId; + + public VisualizationView(String name, Visualization visualization, + String viewId) { this.name = name; this.visualization = visualization; + this.viewId = viewId; } public String getName() { @@ -26,4 +29,12 @@ public class VisualizationView { this.visualization = visualization; } + public String getViewId() { + return viewId; + } + + public void setViewId(String viewId) { + this.viewId = viewId; + } + }