Преглед изворни кода

initial tooling support for synchronization pseudo state added

Andreas Mülder пре 14 година
родитељ
комит
734dfd23cc

+ 19 - 0
plugins/org.yakindu.sct.ui.editor/plugin.xml

@@ -152,6 +152,16 @@
                   name="semanticHint"
                   value="Junction">
             </param>
+         </metamodelType>
+          <metamodelType
+               eclass="Synchronization"
+               id="org.yakindu.sct.ui.editor.Synchronization"
+               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+               name="Junction">
+            <param
+                  name="semanticHint"
+                  value="Synchronization">
+            </param>
          </metamodelType>
          </metamodel>
    </extension>
@@ -317,6 +327,15 @@
                    path="/tools/"
                    small_icon="icons/obj16/junction_16x16.png">
              </entry>
+             <entry
+                   description="Creates a synchronization"
+                   id="org.yakindu.sct.ui.editor.Synchronization"
+                   kind="tool"
+                   label="Synchronization"
+                   large_icon="TODO"
+                   path="/tools/"
+                   small_icon="TODO">
+             </entry>
          </contribution>
          <Priority
                name="Highest">

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

@@ -10,6 +10,9 @@
  */
 package org.yakindu.sct.ui.editor.editor.figures;
 
+import static org.yakindu.sct.ui.editor.editor.figures.utils.GraphicsUtil.fillVerticalGradientRoundedRectangle;
+import static org.yakindu.sct.ui.editor.editor.figures.utils.GraphicsUtil.mixColor;
+
 import org.eclipse.draw2d.ColorConstants;
 import org.eclipse.draw2d.Figure;
 import org.eclipse.draw2d.Graphics;
@@ -25,7 +28,6 @@ import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode;
 import org.eclipse.gmf.runtime.draw2d.ui.mapmode.MapModeUtil;
 import org.eclipse.swt.graphics.Color;
 import org.yakindu.sct.ui.editor.editor.figures.utils.GridDataFactory;
-import static org.yakindu.sct.ui.editor.editor.figures.utils.GraphicsUtil.*;
 /**
  * 
  * @author andreas muelder

+ 39 - 0
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editor/figures/SynchronizationFigure.java

@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2011 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * Contributors:
+ * 	committers of YAKINDU - initial API and implementation
+ * 
+ */
+package org.yakindu.sct.ui.editor.editor.figures;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode;
+/**
+ * 
+ * @author andreas muelder
+ *
+ */
+public class SynchronizationFigure extends RoundedRectangle {
+
+	 private IMapMode mapMode;
+
+	public SynchronizationFigure(IMapMode mapMode) {
+         this.mapMode = mapMode;
+         this.setLineWidth(1);
+         this.setForegroundColor(ColorConstants.black);
+         this.setBackgroundColor(ColorConstants.black);
+         this.setPreferredSize(new Dimension(getMapMode().DPtoLP(6),
+                         getMapMode().DPtoLP(6)));
+ }
+
+ public IMapMode getMapMode() {
+         return mapMode;
+ }
+	
+}

+ 35 - 0
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/SynchronizationEditPart.java

@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2011 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * Contributors:
+ * 	committers of YAKINDU - initial API and implementation
+ * 
+ */
+package org.yakindu.sct.ui.editor.editparts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.yakindu.sct.ui.editor.editor.figures.SynchronizationFigure;
+
+import de.itemis.gmf.runtime.commons.editparts.BarEditPart;
+
+/**
+ * 
+ * @author andreas muelder
+ * 
+ */
+public class SynchronizationEditPart extends BarEditPart {
+
+	public SynchronizationEditPart(View view) {
+		super(view);
+	}
+
+	@Override
+	public IFigure createPrimaryFigure() {
+		return new SynchronizationFigure(getMapMode());
+	}
+
+}

+ 2 - 0
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/providers/SemanticHints.java

@@ -49,4 +49,6 @@ public interface SemanticHints {
 	String JOIN = "Join";
 
 	String JUNCTION = "Junction";
+	
+	String SYNCHRONIZATION = "Synchronization";
 }

+ 2 - 0
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/providers/StatechartDiagramEditPartProvider.java

@@ -34,6 +34,7 @@ import org.yakindu.sct.ui.editor.editparts.StatechartDiagramEditPart;
 import org.yakindu.sct.ui.editor.editparts.StatechartNameEditPart;
 import org.yakindu.sct.ui.editor.editparts.StatechartTextEditPart;
 import org.yakindu.sct.ui.editor.editparts.StatechartTextExpressionEditPart;
+import org.yakindu.sct.ui.editor.editparts.SynchronizationEditPart;
 import org.yakindu.sct.ui.editor.editparts.TransitionEditPart;
 import org.yakindu.sct.ui.editor.editparts.TransitionExpressionEditPart;
 
@@ -79,6 +80,7 @@ public class StatechartDiagramEditPartProvider extends AbstractEditPartProvider
 		editParts
 				.put(TRANSITION_EXPRESSION, TransitionExpressionEditPart.class);
 		editParts.put(EXIT, ExitEditPart.class);
+		editParts.put(SYNCHRONIZATION, SynchronizationEditPart.class);
 	}
 
 	private Class<? extends IGraphicalEditPart> getClass(String semanticHint) {

+ 1 - 0
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/providers/StatechartDiagramViewProvider.java

@@ -64,6 +64,7 @@ public class StatechartDiagramViewProvider extends AbstractViewProvider
 		factories.put(FINALSTATE, ShapeViewFactory.class);
 		factories.put(EXIT, ShapeViewFactory.class);
 		factories.put(JUNCTION, ShapeViewFactory.class);
+		factories.put(SYNCHRONIZATION, ShapeViewFactory.class);
 	}
 
 	private Class<?> getClass(String semanticHint) {