浏览代码

Added action to toggle documentation

Andreas Mülder 11 年之前
父节点
当前提交
17f24a4533

二进制
plugins/org.yakindu.sct.ui.editor/icons/obj16/Menu-16.png


二进制
plugins/org.yakindu.sct.ui.editor/icons/obj32/Menu-32.png


+ 3 - 1
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/StatechartImages.java

@@ -12,7 +12,9 @@ public enum StatechartImages {
 
 	SUB_STATECHART_PICTOGRAM("icons/obj16/Statechart-Pictogram-16.png"),
 
-	LOGO("icons/obj16/logo-16.png");
+	LOGO("icons/obj16/logo-16.png"),
+	
+	MENU("icons/obj16/Menu-16.png");
 	
 
 	private final String path;

+ 8 - 4
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/commands/ToggleShowDocumentationCommand.java

@@ -46,6 +46,12 @@ public class ToggleShowDocumentationCommand extends AbstractHandler {
 
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 		List<View> views = unwrap(HandlerUtil.getCurrentSelection(event));
+		toggleDocumentation(views);
+		return null;
+
+	}
+
+	public static void toggleDocumentation(List<View> views) {
 		CompositeCommand command = new CompositeCommand("toggle documentation");
 		for (View view : views) {
 			StringValueStyle style = GMFNotationUtil.getStringValueStyle(view, FEATURE_TO_SHOW);
@@ -59,11 +65,9 @@ public class ToggleShowDocumentationCommand extends AbstractHandler {
 					NotationPackage.Literals.STRING_VALUE_STYLE__STRING_VALUE, featureName)));
 		}
 		executeCommand(command);
-		return null;
-
 	}
 
-	protected StringValueStyle createInitialStyle(View view) {
+	protected static StringValueStyle createInitialStyle(View view) {
 		StringValueStyle style = NotationFactory.eINSTANCE.createStringValueStyle();
 		style.setName(FEATURE_TO_SHOW);
 		style.setStringValue(SGraphPackage.Literals.SPECIFICATION_ELEMENT__SPECIFICATION.getName());
@@ -72,7 +76,7 @@ public class ToggleShowDocumentationCommand extends AbstractHandler {
 		return style;
 	}
 
-	protected void executeCommand(ICommand cmd) {
+	protected static void executeCommand(ICommand cmd) {
 		try {
 			OperationHistoryFactory.getOperationHistory().execute(cmd, new NullProgressMonitor(), null);
 		} catch (ExecutionException e) {

+ 34 - 7
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editor/StatechartDiagramActionbarContributor.java

@@ -10,25 +10,35 @@
  */
 package org.yakindu.sct.ui.editor.editor;
 
+import java.util.List;
+
 import org.eclipse.gmf.runtime.common.ui.action.global.GlobalActionId;
 import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramActionBarContributor;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.action.Action;
 import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.xtext.EcoreUtil2;
+import org.yakindu.sct.ui.editor.StatechartImages;
+import org.yakindu.sct.ui.editor.commands.ToggleShowDocumentationCommand;
+
 /**
  * 
  * @author andreas muelder - Initial contribution and API
- *
+ * 
  */
-public class StatechartDiagramActionbarContributor extends
-		DiagramActionBarContributor {
-
+public class StatechartDiagramActionbarContributor extends DiagramActionBarContributor {
 
 	@Override
 	public void init(IActionBars bars) {
 		super.init(bars);
-		//workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=346648
+		// workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=346648
 		bars.setGlobalActionHandler(GlobalActionId.SAVE, null);
+		bars.getToolBarManager().add(new ToggleDocumentationAction());
 	}
-	
+
 	@Override
 	protected String getEditorId() {
 		return StatechartDiagramEditor.ID;
@@ -38,6 +48,23 @@ public class StatechartDiagramActionbarContributor extends
 	protected Class<StatechartDiagramEditor> getEditorClass() {
 		return StatechartDiagramEditor.class;
 	}
-	
+
+	public static class ToggleDocumentationAction extends Action {
+		public ToggleDocumentationAction() {
+			setText("Toggle Documentation");
+			setImageDescriptor(StatechartImages.MENU.imageDescriptor());
+		}
+		@Override
+		public void run() {
+			IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
+					.getActiveEditor();
+			if (activeEditor instanceof StatechartDiagramEditor) {
+				Diagram diagram = ((StatechartDiagramEditor) activeEditor).getDiagram();
+				List<View> result = EcoreUtil2.getAllContentsOfType(diagram, View.class);
+				ToggleShowDocumentationCommand.toggleDocumentation(result);
+			}
+
+		}
+	}
 
 }