Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 52853 Details for
Bug 161574
[Plan Item] Activity Diagrams
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Initial implementation of the GMF based Activity Diagram
patch_161574.txt (text/plain), 1.19 MB, created by
Michael Golubev
on 2006-10-27 12:02:16 EDT
(
hide
)
Description:
Initial implementation of the GMF based Activity Diagram
Filename:
MIME Type:
Creator:
Michael Golubev
Created:
2006-10-27 12:02:16 EDT
Size:
1.19 MB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.uml2.diagram.activity >Index: src/org/eclipse/uml2/diagram/activity/view/factories/AcceptEventActionViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/AcceptEventActionViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/AcceptEventActionViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/AcceptEventActionViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class AcceptEventActionViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventActionEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/AddStructuralFeatureValueActionEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/AddStructuralFeatureValueActionEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/AddStructuralFeatureValueActionEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/AddStructuralFeatureValueActionEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,320 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.AddStructuralFeatureValueActionCanonicalEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.AddStructuralFeatureValueActionItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class AddStructuralFeatureValueActionEditPart extends AbstractBorderedShapeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2016; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public AddStructuralFeatureValueActionEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AddStructuralFeatureValueActionItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); >+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new AddStructuralFeatureValueActionCanonicalEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ ActionBaseFigure figure = new ActionBaseFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ActionBaseFigure getPrimaryShape() { >+ return (ActionBaseFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (editPart instanceof InputPinEditPart) { >+ return getBorderedFigure().getBorderItemContainer(); >+ } >+ if (editPart instanceof InputPin2EditPart) { >+ return getBorderedFigure().getBorderItemContainer(); >+ } >+ if (editPart instanceof InputPin3EditPart) { >+ return getBorderedFigure().getBorderItemContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean addFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof AddStructuralFeatureValueActionNameEditPart) { >+ ((AddStructuralFeatureValueActionNameEditPart) childEditPart).setLabel(getPrimaryShape().getFigureActionBaseFigure_name()); >+ return true; >+ } >+ if (childEditPart instanceof InputPinEditPart) { >+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.WEST); >+ getBorderedFigure().getBorderItemContainer().add(((InputPinEditPart) childEditPart).getFigure(), locator); >+ return true; >+ } >+ if (childEditPart instanceof InputPin2EditPart) { >+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.WEST); >+ getBorderedFigure().getBorderItemContainer().add(((InputPin2EditPart) childEditPart).getFigure(), locator); >+ return true; >+ } >+ if (childEditPart instanceof InputPin3EditPart) { >+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.WEST); >+ getBorderedFigure().getBorderItemContainer().add(((InputPin3EditPart) childEditPart).getFigure(), locator); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean removeFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof InputPinEditPart) { >+ getBorderedFigure().getBorderItemContainer().remove(((InputPinEditPart) childEditPart).getFigure()); >+ return true; >+ } >+ if (childEditPart instanceof InputPin2EditPart) { >+ getBorderedFigure().getBorderItemContainer().remove(((InputPin2EditPart) childEditPart).getFigure()); >+ return true; >+ } >+ if (childEditPart instanceof InputPin3EditPart) { >+ getBorderedFigure().getBorderItemContainer().remove(((InputPin3EditPart) childEditPart).getFigure()); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(80), getMapMode().DPtoLP(80)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createMainFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(AddStructuralFeatureValueActionNameEditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (addFixedChild(childEditPart)) { >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (removeFixedChild(childEditPart)) { >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ActionBaseFigure extends org.eclipse.draw2d.RoundedRectangle { >+ >+ /** >+ * @generated >+ */ >+ public ActionBaseFigure() { >+ >+ org.eclipse.uml2.diagram.common.draw2d.CenterLayout myGenLayoutManager = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout(); >+ >+ this.setLayoutManager(myGenLayoutManager); >+ >+ this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(16), getMapMode().DPtoLP(16))); >+ >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel(); >+ >+ fig_0.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(0), getMapMode().DPtoLP(5), getMapMode().DPtoLP(0), getMapMode().DPtoLP(5))); >+ >+ setFigureActionBaseFigure_name(fig_0); >+ >+ Object layData0 = null; >+ >+ this.add(fig_0, layData0); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fActionBaseFigure_name; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureActionBaseFigure_name() { >+ return fActionBaseFigure_name; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureActionBaseFigure_name(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) { >+ fActionBaseFigure_name = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/providers/UMLModelingAssistantProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/providers/UMLModelingAssistantProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/providers/UMLModelingAssistantProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/providers/UMLModelingAssistantProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,195 @@ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import java.util.ArrayList; >+import java.util.Collection; >+import java.util.Collections; >+import java.util.HashSet; >+import java.util.Iterator; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.modelingassistant.ModelingAssistantProvider; >+import org.eclipse.gmf.runtime.notation.Diagram; >+import org.eclipse.jface.viewers.ILabelProvider; >+import org.eclipse.jface.window.Window; >+import org.eclipse.swt.widgets.Display; >+import org.eclipse.swt.widgets.Shell; >+import org.eclipse.ui.dialogs.ElementListSelectionDialog; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin; >+ >+/** >+ * @generated >+ */ >+public class UMLModelingAssistantProvider extends ModelingAssistantProvider { >+ >+ /** >+ * @generated >+ */ >+ public List getTypesForPopupBar(IAdaptable host) { >+ IGraphicalEditPart editPart = (IGraphicalEditPart) host.getAdapter(IGraphicalEditPart.class); >+ if (editPart instanceof OpaqueActionEditPart) { >+ List types = new ArrayList(); >+ types.add(UMLElementTypes.OutputPin_3001); >+ return types; >+ } >+ if (editPart instanceof CreateObjectActionEditPart) { >+ List types = new ArrayList(); >+ types.add(UMLElementTypes.OutputPin_3002); >+ return types; >+ } >+ if (editPart instanceof AddStructuralFeatureValueActionEditPart) { >+ List types = new ArrayList(); >+ types.add(UMLElementTypes.InputPin_3003); >+ types.add(UMLElementTypes.InputPin_3004); >+ types.add(UMLElementTypes.InputPin_3005); >+ return types; >+ } >+ if (editPart instanceof CallBehaviorActionEditPart) { >+ List types = new ArrayList(); >+ types.add(UMLElementTypes.OutputPin_3006); >+ types.add(UMLElementTypes.InputPin_3007); >+ return types; >+ } >+ if (editPart instanceof CallOperationActionEditPart) { >+ List types = new ArrayList(); >+ types.add(UMLElementTypes.OutputPin_3006); >+ types.add(UMLElementTypes.InputPin_3007); >+ types.add(UMLElementTypes.InputPin_3008); >+ return types; >+ } >+ if (editPart instanceof ActivityEditPart) { >+ List types = new ArrayList(); >+ types.add(UMLElementTypes.AcceptEventAction_2001); >+ types.add(UMLElementTypes.AcceptEventAction_2002); >+ types.add(UMLElementTypes.ActivityFinalNode_2003); >+ types.add(UMLElementTypes.DecisionNode_2004); >+ types.add(UMLElementTypes.MergeNode_2005); >+ types.add(UMLElementTypes.InitialNode_2006); >+ types.add(UMLElementTypes.StructuredActivityNode_2007); >+ types.add(UMLElementTypes.DataStoreNode_2008); >+ types.add(UMLElementTypes.CentralBufferNode_2009); >+ types.add(UMLElementTypes.OpaqueAction_2010); >+ types.add(UMLElementTypes.FlowFinalNode_2011); >+ types.add(UMLElementTypes.ForkNode_2012); >+ types.add(UMLElementTypes.JoinNode_2013); >+ types.add(UMLElementTypes.Pin_2014); >+ types.add(UMLElementTypes.CreateObjectAction_2015); >+ types.add(UMLElementTypes.AddStructuralFeatureValueAction_2016); >+ types.add(UMLElementTypes.CallBehaviorAction_2017); >+ types.add(UMLElementTypes.CallOperationAction_2018); >+ return types; >+ } >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public List getRelTypesOnSource(IAdaptable source) { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public List getRelTypesOnTarget(IAdaptable target) { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public List getRelTypesOnSourceAndTarget(IAdaptable source, IAdaptable target) { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public List getTypesForSource(IAdaptable target, IElementType relationshipType) { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public List getTypesForTarget(IAdaptable source, IElementType relationshipType) { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EObject selectExistingElementForSource(IAdaptable target, IElementType relationshipType) { >+ return selectExistingElement(target, getTypesForSource(target, relationshipType)); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EObject selectExistingElementForTarget(IAdaptable source, IElementType relationshipType) { >+ return selectExistingElement(source, getTypesForTarget(source, relationshipType)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject selectExistingElement(IAdaptable host, Collection types) { >+ if (types.isEmpty()) { >+ return null; >+ } >+ IGraphicalEditPart editPart = (IGraphicalEditPart) host.getAdapter(IGraphicalEditPart.class); >+ if (editPart == null) { >+ return null; >+ } >+ Diagram diagram = (Diagram) editPart.getRoot().getContents().getModel(); >+ Collection elements = new HashSet(); >+ for (Iterator it = diagram.getElement().eAllContents(); it.hasNext();) { >+ EObject element = (EObject) it.next(); >+ if (isApplicableElement(element, types)) { >+ elements.add(element); >+ } >+ } >+ if (elements.isEmpty()) { >+ return null; >+ } >+ return selectElement((EObject[]) elements.toArray(new EObject[elements.size()])); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isApplicableElement(EObject element, Collection types) { >+ IElementType type = ElementTypeRegistry.getInstance().getElementType(element); >+ return types.contains(type); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject selectElement(EObject[] elements) { >+ Shell shell = Display.getCurrent().getActiveShell(); >+ ILabelProvider labelProvider = new AdapterFactoryLabelProvider(UMLDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory()); >+ ElementListSelectionDialog dialog = new ElementListSelectionDialog(shell, labelProvider); >+ dialog.setMessage("Available domain model elements:"); >+ dialog.setTitle("Select domain model element"); >+ dialog.setMultipleSelection(false); >+ dialog.setElements(elements); >+ EObject selected = null; >+ if (dialog.open() == Window.OK) { >+ selected = (EObject) dialog.getFirstResult(); >+ } >+ return selected; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/CallOperationActionNameEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/CallOperationActionNameEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/CallOperationActionNameEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/CallOperationActionNameEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,545 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.ArrayList; >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.handles.NonResizableHandleKit; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class CallOperationActionNameEditPart extends CompartmentEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5014; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ public CallOperationActionNameEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() { >+ >+ protected List createSelectionHandles() { >+ List handles = new ArrayList(); >+ NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles); >+ return handles; >+ } >+ >+ public Command getCommand(Request request) { >+ return null; >+ } >+ >+ public boolean understandsRequest(Request request) { >+ return false; >+ } >+ }); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(WrapLabel figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.CallOperationAction_2018; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addNotationalListeners() { >+ super.addNotationalListeners(); >+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeNotationalListeners() { >+ super.removeNotationalListeners(); >+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ // Parent should assign one using setLabel method >+ return null; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/CallOperationActionCanonicalEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/CallOperationActionCanonicalEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/CallOperationActionCanonicalEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/CallOperationActionCanonicalEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,68 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import java.util.Iterator; >+import java.util.LinkedList; >+import java.util.List; >+ >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin5EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.uml.CallAction; >+import org.eclipse.uml2.uml.CallOperationAction; >+import org.eclipse.uml2.uml.InvocationAction; >+ >+/** >+ * @generated >+ */ >+public class CallOperationActionCanonicalEditPolicy extends CanonicalEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected List getSemanticChildrenList() { >+ List result = new LinkedList(); >+ EObject modelObject = ((View) getHost().getModel()).getElement(); >+ View viewObject = (View) getHost().getModel(); >+ EObject nextValue; >+ int nodeVID; >+ for (Iterator values = ((CallAction) modelObject).getResults().iterator(); values.hasNext();) { >+ nextValue = (EObject) values.next(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (OutputPin3EditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ } >+ for (Iterator values = ((InvocationAction) modelObject).getArguments().iterator(); values.hasNext();) { >+ nextValue = (EObject) values.next(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (InputPin4EditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ } >+ nextValue = ((CallOperationAction) modelObject).getTarget(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (InputPin5EditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean shouldDeleteView(View view) { >+ return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getDefaultFactoryHint() { >+ return null; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin3EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin3EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin3EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin3EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,304 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Iterator; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editparts.LayerManager; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.InputPin3ItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLExtNodeLabelHostLayoutEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InputPin3EditPart extends AbstractBorderItemEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 3005; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public InputPin3EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy()); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new InputPin3ItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected void decorateChild(EditPart child) { >+ if (isExternalLabel(child)) { >+ return; >+ } >+ super.decorateChild(child); >+ } >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ UMLExtNodeLabelHostLayoutEditPolicy xlep = new UMLExtNodeLabelHostLayoutEditPolicy() { >+ >+ protected boolean isExternalLabel(EditPart editPart) { >+ return InputPin3EditPart.this.isExternalLabel(editPart); >+ } >+ }; >+ xlep.setRealLayoutEditPolicy(lep); >+ return xlep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ SmallSquareFigure figure = new SmallSquareFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure getPrimaryShape() { >+ return (SmallSquareFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (isExternalLabel(editPart)) { >+ return getExternalLabelsContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ //FIXME: workaround for #154536 >+ result.getBounds().setSize(result.getPreferredSize()); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(InputPinName3EditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isExternalLabel(EditPart childEditPart) { >+ if (childEditPart instanceof InputPinName3EditPart) { >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getExternalLabelsContainer() { >+ LayerManager root = (LayerManager) getRoot(); >+ return root.getLayer(UMLEditPartFactory.EXTERNAL_NODE_LABELS_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().add(labelFigure); >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void removeNotify() { >+ for (Iterator it = getChildren().iterator(); it.hasNext();) { >+ EditPart childEditPart = (EditPart) it.next(); >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ } >+ } >+ super.removeNotify(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class SmallSquareFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure() { >+ >+ this.setPreferredSize(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/StructuredActivityNodeEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/StructuredActivityNodeEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/StructuredActivityNodeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/StructuredActivityNodeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,261 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.StructuredActivityNodeItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class StructuredActivityNodeEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2007; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public StructuredActivityNodeEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new StructuredActivityNodeItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ StructuredActivityFigure figure = new StructuredActivityFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public StructuredActivityFigure getPrimaryShape() { >+ return (StructuredActivityFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class StructuredActivityFigure extends org.eclipse.draw2d.RoundedRectangle { >+ >+ /** >+ * @generated >+ */ >+ public StructuredActivityFigure() { >+ >+ org.eclipse.draw2d.BorderLayout myGenLayoutManager = new org.eclipse.draw2d.BorderLayout(); >+ >+ this.setLayoutManager(myGenLayoutManager); >+ >+ this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASH); >+ this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8), getMapMode().DPtoLP(8))); >+ >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.draw2d.RectangleFigure fig_0 = new org.eclipse.draw2d.RectangleFigure(); >+ fig_0.setFill(false); >+ fig_0.setOutline(false); >+ >+ setFigureStructuredActivityFigure_ContentPane(fig_0); >+ >+ Object layData0 = org.eclipse.draw2d.BorderLayout.CENTER; >+ >+ this.add(fig_0, layData0); >+ org.eclipse.draw2d.RectangleFigure fig_1 = new org.eclipse.draw2d.RectangleFigure(); >+ fig_1.setFill(false); >+ fig_1.setOutline(false); >+ fig_1.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(0), getMapMode().DPtoLP(5), getMapMode().DPtoLP(5), getMapMode().DPtoLP(0))); >+ >+ org.eclipse.draw2d.BorderLayout layouter1 = new org.eclipse.draw2d.BorderLayout(); >+ >+ fig_1.setLayoutManager(layouter1); >+ >+ setFigureAux_StructuredActivityFigure_LabelContainer(fig_1); >+ >+ Object layData1 = org.eclipse.draw2d.BorderLayout.TOP; >+ >+ this.add(fig_1, layData1); >+ org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_2 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel(); >+ fig_2.setText("\u00ABstructured\u00BB"); >+ >+ Object layData2 = org.eclipse.draw2d.BorderLayout.LEFT; >+ >+ fig_1.add(fig_2, layData2); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.RectangleFigure fStructuredActivityFigure_ContentPane; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.draw2d.RectangleFigure getFigureStructuredActivityFigure_ContentPane() { >+ return fStructuredActivityFigure_ContentPane; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureStructuredActivityFigure_ContentPane(org.eclipse.draw2d.RectangleFigure fig) { >+ fStructuredActivityFigure_ContentPane = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.RectangleFigure fAux_StructuredActivityFigure_LabelContainer; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.draw2d.RectangleFigure getFigureAux_StructuredActivityFigure_LabelContainer() { >+ return fAux_StructuredActivityFigure_LabelContainer; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureAux_StructuredActivityFigure_LabelContainer(org.eclipse.draw2d.RectangleFigure fig) { >+ fAux_StructuredActivityFigure_LabelContainer = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: icons/linksNavigatorGroup.gif >=================================================================== >RCS file: icons/linksNavigatorGroup.gif >diff -N icons/linksNavigatorGroup.gif >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ icons/linksNavigatorGroup.gif 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+GIF89aÕÿÿr/GøØf'øÐxøàøÐf>2èÆøè°èÐøðÈÿÿÿÃ6úöºøà øØ?]FøèÒ«üößãϹ´2àÀxr+ðØ?¥l$yO@_l$?R¼2ï߯¼ 2à 6!ù,s@pH,?È#âèh:¨T0ô4® >+à?p©Ñd¢Y`B¡p8G AØ%%HÁçW¶ _B???B¥¦¥ B®©C³´µI·¸FA;Content-Type: image/gif >+ >+GIF89aÕÿÿr/GøØf'øÐxøàøÐf>2èÆøè°èÐøðÈÿÿÿÃ6úöºøà øØ?]FøèÒ«üößãϹ´2àÀxr+ðØ?¥l$yO@_l$?R¼2ï߯¼ 2à 6!ù,s@pH,?È#âèh:¨T0ô4® >+à?p©Ñd¢Y`B¡p8G AØ%%HÁçW¶ _B???B¥¦¥ B®©C³´µI·¸FA; >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/CentralBufferNodeEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/CentralBufferNodeEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/CentralBufferNodeEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/CentralBufferNodeEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class CentralBufferNodeEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/CallOperationActionEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/CallOperationActionEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/CallOperationActionEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/CallOperationActionEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,320 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.CallOperationActionCanonicalEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.CallOperationActionItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class CallOperationActionEditPart extends AbstractBorderedShapeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2018; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public CallOperationActionEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new CallOperationActionItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); >+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new CallOperationActionCanonicalEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ ActionBaseFigure figure = new ActionBaseFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ActionBaseFigure getPrimaryShape() { >+ return (ActionBaseFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (editPart instanceof OutputPin3EditPart) { >+ return getBorderedFigure().getBorderItemContainer(); >+ } >+ if (editPart instanceof InputPin4EditPart) { >+ return getBorderedFigure().getBorderItemContainer(); >+ } >+ if (editPart instanceof InputPin5EditPart) { >+ return getBorderedFigure().getBorderItemContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean addFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof CallOperationActionNameEditPart) { >+ ((CallOperationActionNameEditPart) childEditPart).setLabel(getPrimaryShape().getFigureActionBaseFigure_name()); >+ return true; >+ } >+ if (childEditPart instanceof OutputPin3EditPart) { >+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.EAST); >+ getBorderedFigure().getBorderItemContainer().add(((OutputPin3EditPart) childEditPart).getFigure(), locator); >+ return true; >+ } >+ if (childEditPart instanceof InputPin4EditPart) { >+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.WEST); >+ getBorderedFigure().getBorderItemContainer().add(((InputPin4EditPart) childEditPart).getFigure(), locator); >+ return true; >+ } >+ if (childEditPart instanceof InputPin5EditPart) { >+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.WEST); >+ getBorderedFigure().getBorderItemContainer().add(((InputPin5EditPart) childEditPart).getFigure(), locator); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean removeFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof OutputPin3EditPart) { >+ getBorderedFigure().getBorderItemContainer().remove(((OutputPin3EditPart) childEditPart).getFigure()); >+ return true; >+ } >+ if (childEditPart instanceof InputPin4EditPart) { >+ getBorderedFigure().getBorderItemContainer().remove(((InputPin4EditPart) childEditPart).getFigure()); >+ return true; >+ } >+ if (childEditPart instanceof InputPin5EditPart) { >+ getBorderedFigure().getBorderItemContainer().remove(((InputPin5EditPart) childEditPart).getFigure()); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(80), getMapMode().DPtoLP(80)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createMainFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(CallOperationActionNameEditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (addFixedChild(childEditPart)) { >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (removeFixedChild(childEditPart)) { >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ActionBaseFigure extends org.eclipse.draw2d.RoundedRectangle { >+ >+ /** >+ * @generated >+ */ >+ public ActionBaseFigure() { >+ >+ org.eclipse.uml2.diagram.common.draw2d.CenterLayout myGenLayoutManager = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout(); >+ >+ this.setLayoutManager(myGenLayoutManager); >+ >+ this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(16), getMapMode().DPtoLP(16))); >+ >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel(); >+ >+ fig_0.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(0), getMapMode().DPtoLP(5), getMapMode().DPtoLP(0), getMapMode().DPtoLP(5))); >+ >+ setFigureActionBaseFigure_name(fig_0); >+ >+ Object layData0 = null; >+ >+ this.add(fig_0, layData0); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fActionBaseFigure_name; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureActionBaseFigure_name() { >+ return fActionBaseFigure_name; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureActionBaseFigure_name(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) { >+ fActionBaseFigure_name = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/AddStructuralFeatureValueActionNameViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/AddStructuralFeatureValueActionNameViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/AddStructuralFeatureValueActionNameViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/AddStructuralFeatureValueActionNameViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.BasicNodeViewFactory; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class AddStructuralFeatureValueActionNameViewFactory extends BasicNodeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: META-INF/MANIFEST.MF >=================================================================== >RCS file: META-INF/MANIFEST.MF >diff -N META-INF/MANIFEST.MF >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ META-INF/MANIFEST.MF 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,45 @@ >+Manifest-Version: 1.0 >+Bundle-ManifestVersion: 2 >+Bundle-Name: %pluginName >+Bundle-SymbolicName: org.eclipse.uml2.diagram.activity; singleton:=true >+Bundle-Version: 1.0.0.qualifier >+Bundle-ClassPath: . >+Bundle-Activator: org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin >+Bundle-Vendor: %providerName >+Bundle-Localization: plugin >+Export-Package: org.eclipse.uml2.diagram.activity.edit.parts, >+ org.eclipse.uml2.diagram.activity.part, >+ org.eclipse.uml2.diagram.activity.providers >+Require-Bundle: org.eclipse.core.runtime, >+ org.eclipse.core.resources, >+ org.eclipse.jface, >+ org.eclipse.ui.ide, >+ org.eclipse.ui.views, >+ org.eclipse.ui.workbench, >+ org.eclipse.ui.workbench.texteditor, >+ org.eclipse.ui.navigator, >+ org.eclipse.emf.ecore, >+ org.eclipse.emf.ecore.xmi, >+ org.eclipse.emf.edit.ui, >+ org.eclipse.gef;visibility:=reexport, >+ org.eclipse.gmf.runtime.emf.core, >+ org.eclipse.gmf.runtime.emf.commands.core, >+ org.eclipse.gmf.runtime.emf.ui.properties, >+ org.eclipse.gmf.runtime.diagram.ui, >+ org.eclipse.gmf.runtime.diagram.ui.properties, >+ org.eclipse.gmf.runtime.diagram.ui.providers, >+ org.eclipse.gmf.runtime.diagram.ui.providers.ide, >+ org.eclipse.gmf.runtime.diagram.ui.render, >+ org.eclipse.gmf.runtime.diagram.ui.resources.editor, >+ org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide, >+ org.eclipse.gmf.runtime.notation.providers, >+ org.eclipse.uml2.uml;visibility:=reexport, >+ org.eclipse.uml2.uml.edit;visibility:=reexport, >+ org.eclipse.emf.ecore;visibility:=reexport, >+ org.eclipse.emf.ecore.edit;visibility:=reexport, >+ org.eclipse.emf.query.ocl;visibility:=reexport, >+ org.eclipse.emf.ocl;visibility:=reexport, >+ org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport, >+ org.eclipse.draw2d;visibility:=reexport, >+ org.eclipse.uml2.diagram.common;visibility:=reexport >+Eclipse-LazyStart: true >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/CentralBufferNodeItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/CentralBufferNodeItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/CentralBufferNodeItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/CentralBufferNodeItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class CentralBufferNodeItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLLoadResourceAction.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLLoadResourceAction.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLLoadResourceAction.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLLoadResourceAction.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,63 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import org.eclipse.emf.edit.ui.action.LoadResourceAction.LoadResourceDialog; >+import org.eclipse.jface.action.IAction; >+import org.eclipse.jface.viewers.ISelection; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.swt.widgets.Shell; >+import org.eclipse.ui.IObjectActionDelegate; >+import org.eclipse.ui.IWorkbenchPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+ >+/** >+ * @generated >+ */ >+public class UMLLoadResourceAction implements IObjectActionDelegate { >+ >+ /** >+ * @generated >+ */ >+ private ActivityEditPart mySelectedElement; >+ >+ /** >+ * @generated >+ */ >+ private Shell myShell; >+ >+ /** >+ * @generated >+ */ >+ public void setActivePart(IAction action, IWorkbenchPart targetPart) { >+ myShell = targetPart.getSite().getShell(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void run(IAction action) { >+ LoadResourceDialog loadResourceDialog = new LoadResourceDialog(myShell, mySelectedElement.getEditingDomain()); >+ loadResourceDialog.open(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void selectionChanged(IAction action, ISelection selection) { >+ mySelectedElement = null; >+ if (selection instanceof IStructuredSelection) { >+ IStructuredSelection structuredSelection = (IStructuredSelection) selection; >+ if (structuredSelection.size() == 1 && structuredSelection.getFirstElement() instanceof ActivityEditPart) { >+ mySelectedElement = (ActivityEditPart) structuredSelection.getFirstElement(); >+ } >+ } >+ action.setEnabled(isEnabled()); >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean isEnabled() { >+ return mySelectedElement != null; >+ } >+ >+} >Index: .options >=================================================================== >RCS file: .options >diff -N .options >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .options 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+# Debugging options for the org.eclipse.uml2.diagram.activity plug-in >+ >+# Turn on general debugging for the org.eclipse.uml2.diagram.activity plug-in >+org.eclipse.uml2.diagram.activity/debug=false >+ >+# Turn on debugging of visualID processing >+org.eclipse.uml2.diagram.activity/debug/visualID=true >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/ObjectFlowEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/ObjectFlowEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/ObjectFlowEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/ObjectFlowEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class ObjectFlowEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLNewDiagramFileWizard.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLNewDiagramFileWizard.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLNewDiagramFileWizard.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLNewDiagramFileWizard.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,264 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import java.io.IOException; >+import java.util.Collections; >+import java.util.LinkedList; >+import java.util.List; >+ >+import org.eclipse.core.commands.ExecutionException; >+import org.eclipse.core.commands.operations.OperationHistoryFactory; >+import org.eclipse.core.resources.IContainer; >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.NullProgressMonitor; >+import org.eclipse.core.runtime.Path; >+import org.eclipse.emf.common.util.URI; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.ecore.resource.Resource; >+import org.eclipse.emf.ecore.resource.ResourceSet; >+import org.eclipse.emf.ecore.util.FeatureMap; >+import org.eclipse.emf.edit.provider.IWrapperItemProvider; >+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; >+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.gmf.runtime.common.core.command.CommandResult; >+import org.eclipse.gmf.runtime.diagram.core.services.ViewService; >+import org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation; >+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.notation.Diagram; >+import org.eclipse.jface.viewers.ISelectionChangedListener; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.jface.viewers.SelectionChangedEvent; >+import org.eclipse.jface.viewers.StructuredSelection; >+import org.eclipse.jface.viewers.TreeViewer; >+import org.eclipse.jface.wizard.Wizard; >+import org.eclipse.jface.wizard.WizardPage; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.layout.GridData; >+import org.eclipse.swt.layout.GridLayout; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Label; >+import org.eclipse.ui.IWorkbenchPage; >+import org.eclipse.ui.PartInitException; >+import org.eclipse.ui.dialogs.WizardNewFileCreationPage; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+ >+/** >+ * @generated >+ */ >+public class UMLNewDiagramFileWizard extends Wizard { >+ >+ /** >+ * @generated >+ */ >+ private TransactionalEditingDomain myEditingDomain; >+ >+ /** >+ * @generated >+ */ >+ private WizardNewFileCreationPage myFileCreationPage; >+ >+ /** >+ * @generated >+ */ >+ private IFile mySelectedModelFile; >+ >+ /** >+ * @generated >+ */ >+ private IWorkbenchPage myWorkbenchPage; >+ >+ /** >+ * @generated >+ */ >+ private IStructuredSelection mySelection; >+ >+ /** >+ * @generated >+ */ >+ private EObject myDiagramRoot; >+ >+ /** >+ * @generated >+ */ >+ public UMLNewDiagramFileWizard(IFile selectedModelFile, IWorkbenchPage workbenchPage, IStructuredSelection selection, EObject diagramRoot, TransactionalEditingDomain editingDomain) { >+ assert selectedModelFile != null : "Null selectedModelFile in UMLNewDiagramFileWizard constructor"; //$NON-NLS-1$ >+ assert workbenchPage != null : "Null workbenchPage in UMLNewDiagramFileWizard constructor"; //$NON-NLS-1$ >+ assert selection != null : "Null selection in UMLNewDiagramFileWizard constructor"; //$NON-NLS-1$ >+ assert diagramRoot != null : "Null diagramRoot in UMLNewDiagramFileWizard constructor"; //$NON-NLS-1$ >+ assert editingDomain != null : "Null editingDomain in UMLNewDiagramFileWizard constructor"; //$NON-NLS-1$ >+ >+ mySelectedModelFile = selectedModelFile; >+ myWorkbenchPage = workbenchPage; >+ mySelection = selection; >+ myDiagramRoot = diagramRoot; >+ myEditingDomain = editingDomain; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void addPages() { >+ myFileCreationPage = new WizardNewFileCreationPage("Initialize new Ecore diagram file", mySelection) { >+ >+ public void createControl(Composite parent) { >+ super.createControl(parent); >+ >+ IContainer parentContainer = mySelectedModelFile.getParent(); >+ String originalFileName = mySelectedModelFile.getProjectRelativePath().removeFileExtension().lastSegment(); >+ String fileExtension = ".umlactivity_diagram"; //$NON-NLS-1$ >+ String fileName = originalFileName + fileExtension; >+ for (int i = 1; parentContainer.getFile(new Path(fileName)).exists(); i++) { >+ fileName = originalFileName + i + fileExtension; >+ } >+ setFileName(fileName); >+ } >+ >+ }; >+ myFileCreationPage.setTitle("Diagram file"); >+ myFileCreationPage.setDescription("Create new diagram based on " + ActivityEditPart.MODEL_ID + " model content"); >+ addPage(myFileCreationPage); >+ addPage(new RootElementSelectorPage()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean performFinish() { >+ IFile diagramFile = myFileCreationPage.createNewFile(); >+ try { >+ diagramFile.setCharset("UTF-8", new NullProgressMonitor()); //$NON-NLS-1$ >+ } catch (CoreException e) { >+ UMLDiagramEditorPlugin.getInstance().logError("Unable to set charset for diagram file", e); //$NON-NLS-1$ >+ } >+ >+ ResourceSet resourceSet = myEditingDomain.getResourceSet(); >+ final Resource diagramResource = resourceSet.createResource(URI.createPlatformResourceURI(diagramFile.getFullPath().toString())); >+ >+ List affectedFiles = new LinkedList(); >+ affectedFiles.add(mySelectedModelFile); >+ affectedFiles.add(diagramFile); >+ >+ AbstractTransactionalCommand command = new AbstractTransactionalCommand(myEditingDomain, "Initializing diagram contents", affectedFiles) { //$NON-NLS-1$ >+ >+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { >+ int diagramVID = UMLVisualIDRegistry.getDiagramVisualID(myDiagramRoot); >+ if (diagramVID != ActivityEditPart.VISUAL_ID) { >+ return CommandResult.newErrorCommandResult("Incorrect model object stored as a root resource object"); //$NON-NLS-1$ >+ } >+ Diagram diagram = ViewService.createDiagram(myDiagramRoot, ActivityEditPart.MODEL_ID, UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT); >+ diagramResource.getContents().add(diagram); >+ return CommandResult.newOKCommandResult(); >+ } >+ }; >+ >+ try { >+ OperationHistoryFactory.getOperationHistory().execute(command, new NullProgressMonitor(), null); >+ diagramResource.save(Collections.EMPTY_MAP); >+ UMLDiagramEditorUtil.openDiagramEditor(myWorkbenchPage, diagramFile); >+ } catch (ExecutionException e) { >+ UMLDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$ >+ } catch (IOException ex) { >+ UMLDiagramEditorPlugin.getInstance().logError("Save operation failed for: " + diagramFile.getFullPath().toString(), ex); //$NON-NLS-1$ >+ } catch (PartInitException ex) { >+ UMLDiagramEditorPlugin.getInstance().logError("Unable to open editor", ex); //$NON-NLS-1$ >+ } >+ return true; >+ } >+ >+ /** >+ * @generated >+ */ >+ private class RootElementSelectorPage extends WizardPage implements ISelectionChangedListener { >+ >+ /** >+ * @generated >+ */ >+ protected RootElementSelectorPage() { >+ super("Select diagram root element"); >+ setTitle("Diagram root element"); >+ setDescription("Select semantic model element to be depicted on diagram"); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void createControl(Composite parent) { >+ initializeDialogUnits(parent); >+ Composite topLevel = new Composite(parent, SWT.NONE); >+ topLevel.setLayout(new GridLayout()); >+ topLevel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL)); >+ topLevel.setFont(parent.getFont()); >+ setControl(topLevel); >+ createModelBrowser(topLevel); >+ setPageComplete(validatePage()); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createModelBrowser(Composite parent) { >+ Composite panel = new Composite(parent, SWT.NONE); >+ panel.setLayoutData(new GridData(GridData.FILL_BOTH)); >+ GridLayout layout = new GridLayout(); >+ layout.marginWidth = 0; >+ panel.setLayout(layout); >+ >+ Label label = new Label(panel, SWT.NONE); >+ label.setText("Select diagram root element:"); >+ label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); >+ >+ TreeViewer treeViewer = new TreeViewer(panel, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); >+ GridData layoutData = new GridData(GridData.FILL_BOTH); >+ layoutData.heightHint = 300; >+ layoutData.widthHint = 300; >+ treeViewer.getTree().setLayoutData(layoutData); >+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(UMLDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory())); >+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(UMLDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory())); >+ treeViewer.setInput(myDiagramRoot.eResource()); >+ treeViewer.setSelection(new StructuredSelection(myDiagramRoot)); >+ treeViewer.addSelectionChangedListener(this); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void selectionChanged(SelectionChangedEvent event) { >+ myDiagramRoot = null; >+ if (event.getSelection() instanceof IStructuredSelection) { >+ IStructuredSelection selection = (IStructuredSelection) event.getSelection(); >+ if (selection.size() == 1) { >+ Object selectedElement = selection.getFirstElement(); >+ if (selectedElement instanceof IWrapperItemProvider) { >+ selectedElement = ((IWrapperItemProvider) selectedElement).getValue(); >+ } >+ if (selectedElement instanceof FeatureMap.Entry) { >+ selectedElement = ((FeatureMap.Entry) selectedElement).getValue(); >+ } >+ if (selectedElement instanceof EObject) { >+ myDiagramRoot = (EObject) selectedElement; >+ } >+ } >+ } >+ setPageComplete(validatePage()); >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean validatePage() { >+ if (myDiagramRoot == null) { >+ setErrorMessage("No diagram root element selected"); >+ return false; >+ } >+ boolean result = ViewService.getInstance().provides( >+ new CreateDiagramViewOperation(new EObjectAdapter(myDiagramRoot), ActivityEditPart.MODEL_ID, UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT)); >+ setErrorMessage(result ? null : "Invalid diagram root element was selected"); >+ return result; >+ } >+ >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/AcceptEventAction2ItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/AcceptEventAction2ItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/AcceptEventAction2ItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/AcceptEventAction2ItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class AcceptEventAction2ItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/ControlFlowViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/ControlFlowViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/ControlFlowViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/ControlFlowViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,47 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.ConnectionViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class ControlFlowViewFactory extends ConnectionViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createRoutingStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.ControlFlowEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/JoinNodeItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/JoinNodeItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/JoinNodeItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/JoinNodeItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class JoinNodeItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinNameEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class OutputPinViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.OutputPinEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(OutputPinNameEditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/OpaqueActionCanonicalEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/OpaqueActionCanonicalEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/OpaqueActionCanonicalEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/OpaqueActionCanonicalEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import java.util.Iterator; >+import java.util.LinkedList; >+import java.util.List; >+ >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.uml.OpaqueAction; >+ >+/** >+ * @generated >+ */ >+public class OpaqueActionCanonicalEditPolicy extends CanonicalEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected List getSemanticChildrenList() { >+ List result = new LinkedList(); >+ EObject modelObject = ((View) getHost().getModel()).getElement(); >+ View viewObject = (View) getHost().getModel(); >+ EObject nextValue; >+ int nodeVID; >+ for (Iterator values = ((OpaqueAction) modelObject).getOutputValues().iterator(); values.hasNext();) { >+ nextValue = (EObject) values.next(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (OutputPinEditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ } >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean shouldDeleteView(View view) { >+ return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getDefaultFactoryHint() { >+ return null; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/PinViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/PinViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/PinViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/PinViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.PinNameEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class PinViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.PinEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(PinNameEditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/providers/UMLIconProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/providers/UMLIconProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/providers/UMLIconProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/providers/UMLIconProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,31 @@ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.common.core.service.AbstractProvider; >+import org.eclipse.gmf.runtime.common.core.service.IOperation; >+import org.eclipse.gmf.runtime.common.ui.services.icon.GetIconOperation; >+import org.eclipse.gmf.runtime.common.ui.services.icon.IIconProvider; >+import org.eclipse.swt.graphics.Image; >+ >+/** >+ * @generated >+ */ >+public class UMLIconProvider extends AbstractProvider implements IIconProvider { >+ >+ /** >+ * @generated >+ */ >+ public Image getIcon(IAdaptable hint, int flags) { >+ return UMLElementTypes.getImage(hint); >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean provides(IOperation operation) { >+ if (operation instanceof GetIconOperation) { >+ return ((GetIconOperation) operation).execute(this) != null; >+ } >+ return false; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/MergeNodeItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/MergeNodeItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/MergeNodeItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/MergeNodeItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class MergeNodeItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InputPin3ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InputPin3ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InputPin3ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InputPin3ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName3EditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InputPin3ViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.InputPin3EditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(InputPinName3EditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/CallBehaviorActionViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/CallBehaviorActionViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/CallBehaviorActionViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/CallBehaviorActionViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class CallBehaviorActionViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(CallBehaviorActionNameEditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/ActivityEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/ActivityEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/ActivityEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/ActivityEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class ActivityEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,304 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Iterator; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editparts.LayerManager; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.OutputPinItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLExtNodeLabelHostLayoutEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class OutputPinEditPart extends AbstractBorderItemEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 3001; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public OutputPinEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy()); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new OutputPinItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected void decorateChild(EditPart child) { >+ if (isExternalLabel(child)) { >+ return; >+ } >+ super.decorateChild(child); >+ } >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ UMLExtNodeLabelHostLayoutEditPolicy xlep = new UMLExtNodeLabelHostLayoutEditPolicy() { >+ >+ protected boolean isExternalLabel(EditPart editPart) { >+ return OutputPinEditPart.this.isExternalLabel(editPart); >+ } >+ }; >+ xlep.setRealLayoutEditPolicy(lep); >+ return xlep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ SmallSquareFigure figure = new SmallSquareFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure getPrimaryShape() { >+ return (SmallSquareFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (isExternalLabel(editPart)) { >+ return getExternalLabelsContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ //FIXME: workaround for #154536 >+ result.getBounds().setSize(result.getPreferredSize()); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(OutputPinNameEditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isExternalLabel(EditPart childEditPart) { >+ if (childEditPart instanceof OutputPinNameEditPart) { >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getExternalLabelsContainer() { >+ LayerManager root = (LayerManager) getRoot(); >+ return root.getLayer(UMLEditPartFactory.EXTERNAL_NODE_LABELS_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().add(labelFigure); >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void removeNotify() { >+ for (Iterator it = getChildren().iterator(); it.hasNext();) { >+ EditPart childEditPart = (EditPart) it.next(); >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ } >+ } >+ super.removeNotify(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class SmallSquareFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure() { >+ >+ this.setPreferredSize(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/CreateObjectActionCanonicalEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/CreateObjectActionCanonicalEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/CreateObjectActionCanonicalEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/CreateObjectActionCanonicalEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import java.util.LinkedList; >+import java.util.List; >+ >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.uml.CreateObjectAction; >+ >+/** >+ * @generated >+ */ >+public class CreateObjectActionCanonicalEditPolicy extends CanonicalEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected List getSemanticChildrenList() { >+ List result = new LinkedList(); >+ EObject modelObject = ((View) getHost().getModel()).getElement(); >+ View viewObject = (View) getHost().getModel(); >+ EObject nextValue; >+ int nodeVID; >+ nextValue = ((CreateObjectAction) modelObject).getResult(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (OutputPin2EditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean shouldDeleteView(View view) { >+ return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getDefaultFactoryHint() { >+ return null; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLPaletteFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLPaletteFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLPaletteFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLPaletteFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,556 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.gef.Tool; >+import org.eclipse.gef.palette.PaletteContainer; >+import org.eclipse.gef.palette.PaletteDrawer; >+import org.eclipse.gef.palette.PaletteRoot; >+import org.eclipse.gef.palette.ToolEntry; >+import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeConnectionTool; >+import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeCreationTool; >+import org.eclipse.jface.resource.ImageDescriptor; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class UMLPaletteFactory { >+ >+ /** >+ * @generated >+ */ >+ public void fillPalette(PaletteRoot paletteRoot) { >+ paletteRoot.add(createActions1Group()); >+ paletteRoot.add(createControlNodes2Group()); >+ paletteRoot.add(createStructuredActivities3Group()); >+ paletteRoot.add(createObjects4Group()); >+ paletteRoot.add(createEdges5Group()); >+ } >+ >+ /** >+ * @generated >+ */ >+ private PaletteContainer createActions1Group() { >+ PaletteContainer paletteContainer = new PaletteDrawer("Actions"); >+ paletteContainer.setDescription("Actions"); >+ paletteContainer.add(createAcceptEventAction1CreationTool()); >+ paletteContainer.add(createAcceptTimeAction2CreationTool()); >+ paletteContainer.add(createOpaqueAction3CreationTool()); >+ paletteContainer.add(createCreateObjectAction4CreationTool()); >+ paletteContainer.add(createAddFeatureValueAction5CreationTool()); >+ paletteContainer.add(createCallBehaviorAction6CreationTool()); >+ paletteContainer.add(createCallOperationAction7CreationTool()); >+ return paletteContainer; >+ } >+ >+ /** >+ * @generated >+ */ >+ private PaletteContainer createControlNodes2Group() { >+ PaletteContainer paletteContainer = new PaletteDrawer("Control Nodes"); >+ paletteContainer.setDescription("Control Nodes"); >+ paletteContainer.add(createActivityFinalNode1CreationTool()); >+ paletteContainer.add(createActivityInitialNode2CreationTool()); >+ paletteContainer.add(createFlowFinalNode3CreationTool()); >+ paletteContainer.add(createDecisionNode4CreationTool()); >+ paletteContainer.add(createMergeNode5CreationTool()); >+ paletteContainer.add(createForkNode6CreationTool()); >+ paletteContainer.add(createJoinNode7CreationTool()); >+ return paletteContainer; >+ } >+ >+ /** >+ * @generated >+ */ >+ private PaletteContainer createStructuredActivities3Group() { >+ PaletteContainer paletteContainer = new PaletteDrawer("Structured Activities"); >+ paletteContainer.setDescription("Structured Activities"); >+ paletteContainer.add(createStructuredActivityNode1CreationTool()); >+ return paletteContainer; >+ } >+ >+ /** >+ * @generated >+ */ >+ private PaletteContainer createObjects4Group() { >+ PaletteContainer paletteContainer = new PaletteDrawer("Objects"); >+ paletteContainer.setDescription("Objects"); >+ paletteContainer.add(createDatastore1CreationTool()); >+ paletteContainer.add(createCentralBuffer2CreationTool()); >+ paletteContainer.add(createPin3CreationTool()); >+ paletteContainer.add(createOutputPin4CreationTool()); >+ paletteContainer.add(createInputPin5CreationTool()); >+ return paletteContainer; >+ } >+ >+ /** >+ * @generated >+ */ >+ private PaletteContainer createEdges5Group() { >+ PaletteContainer paletteContainer = new PaletteDrawer("Edges"); >+ paletteContainer.setDescription("Edges"); >+ paletteContainer.add(createControlFlow1CreationTool()); >+ paletteContainer.add(createObjectFlow2CreationTool()); >+ return paletteContainer; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createAcceptEventAction1CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.AcceptEventAction_2001); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.AcceptEventAction_2001); >+ ToolEntry result = new NodeToolEntry("Accept Event Action", "Create Accept Event Action", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createAcceptTimeAction2CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.AcceptEventAction_2002); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.AcceptEventAction_2002); >+ ToolEntry result = new NodeToolEntry("Accept Time Action", "Create Accept Time Action", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createOpaqueAction3CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.OpaqueAction_2010); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.OpaqueAction_2010); >+ ToolEntry result = new NodeToolEntry("Opaque Action", "Create Opaque Action", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createCreateObjectAction4CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.CreateObjectAction_2015); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.CreateObjectAction_2015); >+ ToolEntry result = new NodeToolEntry("Create Object Action", "Create Create Object Action", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createAddFeatureValueAction5CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.AddStructuralFeatureValueAction_2016); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.AddStructuralFeatureValueAction_2016); >+ ToolEntry result = new NodeToolEntry("Add Feature Value Action", "Create Add Feature Value Action", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createCallBehaviorAction6CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.CallBehaviorAction_2017); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.CallBehaviorAction_2017); >+ ToolEntry result = new NodeToolEntry("Call Behavior Action", "Create Call Behavior Action", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createCallOperationAction7CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.CallOperationAction_2018); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.CallOperationAction_2018); >+ ToolEntry result = new NodeToolEntry("Call Operation Action", "Create Call Operation Action", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createActivityFinalNode1CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.ActivityFinalNode_2003); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.ActivityFinalNode_2003); >+ ToolEntry result = new NodeToolEntry("Activity Final Node", "Create Activity Final Node", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createActivityInitialNode2CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.InitialNode_2006); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.InitialNode_2006); >+ ToolEntry result = new NodeToolEntry("Activity Initial Node", "Create Activity Initial Node", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createFlowFinalNode3CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.FlowFinalNode_2011); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.FlowFinalNode_2011); >+ ToolEntry result = new NodeToolEntry("Flow Final Node", "Create Flow Final Node", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createDecisionNode4CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.DecisionNode_2004); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.DecisionNode_2004); >+ ToolEntry result = new NodeToolEntry("Decision Node", "Create Decision Node", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createMergeNode5CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.MergeNode_2005); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.MergeNode_2005); >+ ToolEntry result = new NodeToolEntry("Merge Node", "Create Merge Node", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createForkNode6CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.ForkNode_2012); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.ForkNode_2012); >+ ToolEntry result = new NodeToolEntry("Fork Node", "Create Fork Node", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createJoinNode7CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.JoinNode_2013); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.JoinNode_2013); >+ ToolEntry result = new NodeToolEntry("Join Node", "Create Join Node", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createStructuredActivityNode1CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.StructuredActivityNode_2007); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.StructuredActivityNode_2007); >+ ToolEntry result = new NodeToolEntry("Structured Activity Node", "Creare Structured Activity Node", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createDatastore1CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.DataStoreNode_2008); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.DataStoreNode_2008); >+ ToolEntry result = new NodeToolEntry("Datastore", "Create Datastore", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createCentralBuffer2CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.CentralBufferNode_2009); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.CentralBufferNode_2009); >+ ToolEntry result = new NodeToolEntry("Central Buffer", "Create Central Buffer", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createPin3CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.Pin_2014); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.Pin_2014); >+ ToolEntry result = new NodeToolEntry("Pin", "Create Pin", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createOutputPin4CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.OutputPin_3001); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.OutputPin_3001); >+ elementTypes.add(UMLElementTypes.OutputPin_3002); >+ elementTypes.add(UMLElementTypes.OutputPin_3006); >+ ToolEntry result = new NodeToolEntry("Output Pin", "Create Output Pin", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createInputPin5CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.InputPin_3003); >+ >+ largeImage = smallImage; >+ >+ final List elementTypes = new ArrayList(); >+ elementTypes.add(UMLElementTypes.InputPin_3003); >+ elementTypes.add(UMLElementTypes.InputPin_3004); >+ elementTypes.add(UMLElementTypes.InputPin_3005); >+ elementTypes.add(UMLElementTypes.InputPin_3007); >+ elementTypes.add(UMLElementTypes.InputPin_3008); >+ ToolEntry result = new NodeToolEntry("Input Pin", "Create Input Pin", smallImage, largeImage, elementTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createControlFlow1CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.ControlFlow_4001); >+ >+ largeImage = smallImage; >+ >+ final List relationshipTypes = new ArrayList(); >+ relationshipTypes.add(UMLElementTypes.ControlFlow_4001); >+ ToolEntry result = new LinkToolEntry("Control Flow", "Create Control Flow", smallImage, largeImage, relationshipTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry createObjectFlow2CreationTool() { >+ ImageDescriptor smallImage; >+ ImageDescriptor largeImage; >+ >+ smallImage = UMLElementTypes.getImageDescriptor(UMLElementTypes.ObjectFlow_4002); >+ >+ largeImage = smallImage; >+ >+ final List relationshipTypes = new ArrayList(); >+ relationshipTypes.add(UMLElementTypes.ObjectFlow_4002); >+ ToolEntry result = new LinkToolEntry("Object Flow", "Create Object Flow", smallImage, largeImage, relationshipTypes); >+ >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class NodeToolEntry extends ToolEntry { >+ >+ /** >+ * @generated >+ */ >+ private final List elementTypes; >+ >+ /** >+ * @generated >+ */ >+ private NodeToolEntry(String title, String description, ImageDescriptor smallIcon, ImageDescriptor largeIcon, List elementTypes) { >+ super(title, description, smallIcon, largeIcon); >+ this.elementTypes = elementTypes; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Tool createTool() { >+ Tool tool = new UnspecifiedTypeCreationTool(elementTypes); >+ tool.setProperties(getToolProperties()); >+ return tool; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class LinkToolEntry extends ToolEntry { >+ >+ /** >+ * @generated >+ */ >+ private final List relationshipTypes; >+ >+ /** >+ * @generated >+ */ >+ private LinkToolEntry(String title, String description, ImageDescriptor smallIcon, ImageDescriptor largeIcon, List relationshipTypes) { >+ super(title, description, smallIcon, largeIcon); >+ this.relationshipTypes = relationshipTypes; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Tool createTool() { >+ Tool tool = new UnspecifiedTypeConnectionTool(relationshipTypes); >+ tool.setProperties(getToolProperties()); >+ return tool; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/CentralBufferNodeViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/CentralBufferNodeViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/CentralBufferNodeViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/CentralBufferNodeViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class CentralBufferNodeViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.CentralBufferNodeEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,304 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Iterator; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editparts.LayerManager; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.InputPinItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLExtNodeLabelHostLayoutEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InputPinEditPart extends AbstractBorderItemEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 3003; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public InputPinEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy()); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new InputPinItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected void decorateChild(EditPart child) { >+ if (isExternalLabel(child)) { >+ return; >+ } >+ super.decorateChild(child); >+ } >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ UMLExtNodeLabelHostLayoutEditPolicy xlep = new UMLExtNodeLabelHostLayoutEditPolicy() { >+ >+ protected boolean isExternalLabel(EditPart editPart) { >+ return InputPinEditPart.this.isExternalLabel(editPart); >+ } >+ }; >+ xlep.setRealLayoutEditPolicy(lep); >+ return xlep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ SmallSquareFigure figure = new SmallSquareFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure getPrimaryShape() { >+ return (SmallSquareFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (isExternalLabel(editPart)) { >+ return getExternalLabelsContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ //FIXME: workaround for #154536 >+ result.getBounds().setSize(result.getPreferredSize()); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(InputPinNameEditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isExternalLabel(EditPart childEditPart) { >+ if (childEditPart instanceof InputPinNameEditPart) { >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getExternalLabelsContainer() { >+ LayerManager root = (LayerManager) getRoot(); >+ return root.getLayer(UMLEditPartFactory.EXTERNAL_NODE_LABELS_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().add(labelFigure); >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void removeNotify() { >+ for (Iterator it = getChildren().iterator(); it.hasNext();) { >+ EditPart childEditPart = (EditPart) it.next(); >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ } >+ } >+ super.removeNotify(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class SmallSquareFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure() { >+ >+ this.setPreferredSize(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/DataStoreNodeItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/DataStoreNodeItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/DataStoreNodeItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/DataStoreNodeItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class DataStoreNodeItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/PinNameEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/PinNameEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/PinNameEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/PinNameEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,545 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.ArrayList; >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.handles.NonResizableHandleKit; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class PinNameEditPart extends CompartmentEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5002; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ public PinNameEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() { >+ >+ protected List createSelectionHandles() { >+ List handles = new ArrayList(); >+ NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles); >+ return handles; >+ } >+ >+ public Command getCommand(Request request) { >+ return null; >+ } >+ >+ public boolean understandsRequest(Request request) { >+ return false; >+ } >+ }); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(WrapLabel figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.Pin_2014; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addNotationalListeners() { >+ super.addNotationalListeners(); >+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeNotationalListeners() { >+ super.removeNotationalListeners(); >+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ // Parent should assign one using setLabel method >+ return null; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/OpaqueActionEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/OpaqueActionEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/OpaqueActionEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/OpaqueActionEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,296 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.OpaqueActionCanonicalEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.OpaqueActionItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class OpaqueActionEditPart extends AbstractBorderedShapeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2010; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public OpaqueActionEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new OpaqueActionItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); >+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new OpaqueActionCanonicalEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ ActionBaseFigure figure = new ActionBaseFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ActionBaseFigure getPrimaryShape() { >+ return (ActionBaseFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (editPart instanceof OutputPinEditPart) { >+ return getBorderedFigure().getBorderItemContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean addFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof OpaqueActionNameEditPart) { >+ ((OpaqueActionNameEditPart) childEditPart).setLabel(getPrimaryShape().getFigureActionBaseFigure_name()); >+ return true; >+ } >+ if (childEditPart instanceof OutputPinEditPart) { >+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.EAST); >+ getBorderedFigure().getBorderItemContainer().add(((OutputPinEditPart) childEditPart).getFigure(), locator); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean removeFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof OutputPinEditPart) { >+ getBorderedFigure().getBorderItemContainer().remove(((OutputPinEditPart) childEditPart).getFigure()); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(80), getMapMode().DPtoLP(50)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createMainFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(OpaqueActionNameEditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (addFixedChild(childEditPart)) { >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (removeFixedChild(childEditPart)) { >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ActionBaseFigure extends org.eclipse.draw2d.RoundedRectangle { >+ >+ /** >+ * @generated >+ */ >+ public ActionBaseFigure() { >+ >+ org.eclipse.uml2.diagram.common.draw2d.CenterLayout myGenLayoutManager = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout(); >+ >+ this.setLayoutManager(myGenLayoutManager); >+ >+ this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(16), getMapMode().DPtoLP(16))); >+ >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel(); >+ >+ fig_0.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(0), getMapMode().DPtoLP(5), getMapMode().DPtoLP(0), getMapMode().DPtoLP(5))); >+ >+ setFigureActionBaseFigure_name(fig_0); >+ >+ Object layData0 = null; >+ >+ this.add(fig_0, layData0); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fActionBaseFigure_name; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureActionBaseFigure_name() { >+ return fActionBaseFigure_name; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureActionBaseFigure_name(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) { >+ fActionBaseFigure_name = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/providers/UMLElementTypes.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/providers/UMLElementTypes.java >diff -N src/org/eclipse/uml2/diagram/activity/providers/UMLElementTypes.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/providers/UMLElementTypes.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,526 @@ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import java.util.ArrayList; >+import java.util.Collection; >+import java.util.HashSet; >+import java.util.IdentityHashMap; >+import java.util.List; >+import java.util.Map; >+import java.util.Set; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.common.util.BasicEList; >+import org.eclipse.emf.common.util.EList; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.ENamedElement; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.ecore.EStructuralFeature; >+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.jface.resource.ImageDescriptor; >+import org.eclipse.jface.resource.ImageRegistry; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.expressions.UMLAbstractExpression; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin; >+import org.eclipse.uml2.uml.AcceptEventAction; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class UMLElementTypes { >+ >+ /** >+ * @generated >+ */ >+ private UMLElementTypes() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private static Map elements; >+ >+ /** >+ * @generated >+ */ >+ private static ImageRegistry imageRegistry; >+ >+ /** >+ * @generated >+ */ >+ private static ImageRegistry getImageRegistry() { >+ if (imageRegistry == null) { >+ imageRegistry = new ImageRegistry(); >+ } >+ return imageRegistry; >+ } >+ >+ /** >+ * @generated >+ */ >+ private static String getImageRegistryKey(ENamedElement element) { >+ return element.getName(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static ImageDescriptor getProvidedImageDescriptor(ENamedElement element) { >+ if (element instanceof EStructuralFeature) { >+ element = ((EStructuralFeature) element).getEContainingClass(); >+ } >+ if (element instanceof EClass) { >+ EClass eClass = (EClass) element; >+ if (!eClass.isAbstract()) { >+ return UMLDiagramEditorPlugin.getInstance().getItemImageDescriptor(eClass.getEPackage().getEFactoryInstance().create(eClass)); >+ } >+ } >+ // TODO : support structural features >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static ImageDescriptor getImageDescriptor(ENamedElement element) { >+ String key = getImageRegistryKey(element); >+ ImageDescriptor imageDescriptor = getImageRegistry().getDescriptor(key); >+ if (imageDescriptor == null) { >+ imageDescriptor = getProvidedImageDescriptor(element); >+ if (imageDescriptor == null) { >+ imageDescriptor = ImageDescriptor.getMissingImageDescriptor(); >+ } >+ getImageRegistry().put(key, imageDescriptor); >+ } >+ return imageDescriptor; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static Image getImage(ENamedElement element) { >+ String key = getImageRegistryKey(element); >+ Image image = getImageRegistry().get(key); >+ if (image == null) { >+ ImageDescriptor imageDescriptor = getProvidedImageDescriptor(element); >+ if (imageDescriptor == null) { >+ imageDescriptor = ImageDescriptor.getMissingImageDescriptor(); >+ } >+ getImageRegistry().put(key, imageDescriptor); >+ image = getImageRegistry().get(key); >+ } >+ return image; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static ImageDescriptor getImageDescriptor(IAdaptable hint) { >+ ENamedElement element = getElement(hint); >+ if (element == null) { >+ return null; >+ } >+ return getImageDescriptor(element); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static Image getImage(IAdaptable hint) { >+ ENamedElement element = getElement(hint); >+ if (element == null) { >+ return null; >+ } >+ return getImage(element); >+ } >+ >+ /** >+ * Returns 'type' of the ecore object associated with the hint. >+ * >+ * @generated >+ */ >+ public static ENamedElement getElement(IAdaptable hint) { >+ Object type = hint.getAdapter(IElementType.class); >+ if (elements == null) { >+ elements = new IdentityHashMap(); >+ elements.put(Activity_1000, UMLPackage.eINSTANCE.getActivity()); >+ elements.put(OutputPin_3001, UMLPackage.eINSTANCE.getOutputPin()); >+ elements.put(OutputPin_3002, UMLPackage.eINSTANCE.getOutputPin()); >+ elements.put(InputPin_3003, UMLPackage.eINSTANCE.getInputPin()); >+ elements.put(InputPin_3004, UMLPackage.eINSTANCE.getInputPin()); >+ elements.put(InputPin_3005, UMLPackage.eINSTANCE.getInputPin()); >+ elements.put(OutputPin_3006, UMLPackage.eINSTANCE.getOutputPin()); >+ elements.put(InputPin_3007, UMLPackage.eINSTANCE.getInputPin()); >+ elements.put(InputPin_3008, UMLPackage.eINSTANCE.getInputPin()); >+ elements.put(AcceptEventAction_2001, UMLPackage.eINSTANCE.getAcceptEventAction()); >+ elements.put(AcceptEventAction_2002, UMLPackage.eINSTANCE.getAcceptEventAction()); >+ elements.put(ActivityFinalNode_2003, UMLPackage.eINSTANCE.getActivityFinalNode()); >+ elements.put(DecisionNode_2004, UMLPackage.eINSTANCE.getDecisionNode()); >+ elements.put(MergeNode_2005, UMLPackage.eINSTANCE.getMergeNode()); >+ elements.put(InitialNode_2006, UMLPackage.eINSTANCE.getInitialNode()); >+ elements.put(StructuredActivityNode_2007, UMLPackage.eINSTANCE.getStructuredActivityNode()); >+ elements.put(DataStoreNode_2008, UMLPackage.eINSTANCE.getDataStoreNode()); >+ elements.put(CentralBufferNode_2009, UMLPackage.eINSTANCE.getCentralBufferNode()); >+ elements.put(OpaqueAction_2010, UMLPackage.eINSTANCE.getOpaqueAction()); >+ elements.put(FlowFinalNode_2011, UMLPackage.eINSTANCE.getFlowFinalNode()); >+ elements.put(ForkNode_2012, UMLPackage.eINSTANCE.getForkNode()); >+ elements.put(JoinNode_2013, UMLPackage.eINSTANCE.getJoinNode()); >+ elements.put(Pin_2014, UMLPackage.eINSTANCE.getPin()); >+ elements.put(CreateObjectAction_2015, UMLPackage.eINSTANCE.getCreateObjectAction()); >+ elements.put(AddStructuralFeatureValueAction_2016, UMLPackage.eINSTANCE.getAddStructuralFeatureValueAction()); >+ elements.put(CallBehaviorAction_2017, UMLPackage.eINSTANCE.getCallBehaviorAction()); >+ elements.put(CallOperationAction_2018, UMLPackage.eINSTANCE.getCallOperationAction()); >+ elements.put(ControlFlow_4001, UMLPackage.eINSTANCE.getControlFlow()); >+ elements.put(ObjectFlow_4002, UMLPackage.eINSTANCE.getObjectFlow()); >+ } >+ return (ENamedElement) elements.get(type); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType Activity_1000 = getElementType("org.eclipse.uml2.diagram.activity.Activity_1000"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType OutputPin_3001 = getElementType("org.eclipse.uml2.diagram.activity.OutputPin_3001"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType OutputPin_3002 = getElementType("org.eclipse.uml2.diagram.activity.OutputPin_3002"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType InputPin_3003 = getElementType("org.eclipse.uml2.diagram.activity.InputPin_3003"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType InputPin_3004 = getElementType("org.eclipse.uml2.diagram.activity.InputPin_3004"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType InputPin_3005 = getElementType("org.eclipse.uml2.diagram.activity.InputPin_3005"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType OutputPin_3006 = getElementType("org.eclipse.uml2.diagram.activity.OutputPin_3006"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType InputPin_3007 = getElementType("org.eclipse.uml2.diagram.activity.InputPin_3007"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType InputPin_3008 = getElementType("org.eclipse.uml2.diagram.activity.InputPin_3008"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType AcceptEventAction_2001 = getElementType("org.eclipse.uml2.diagram.activity.AcceptEventAction_2001"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType AcceptEventAction_2002 = getElementType("org.eclipse.uml2.diagram.activity.AcceptEventAction_2002"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType ActivityFinalNode_2003 = getElementType("org.eclipse.uml2.diagram.activity.ActivityFinalNode_2003"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType DecisionNode_2004 = getElementType("org.eclipse.uml2.diagram.activity.DecisionNode_2004"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType MergeNode_2005 = getElementType("org.eclipse.uml2.diagram.activity.MergeNode_2005"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType InitialNode_2006 = getElementType("org.eclipse.uml2.diagram.activity.InitialNode_2006"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType StructuredActivityNode_2007 = getElementType("org.eclipse.uml2.diagram.activity.StructuredActivityNode_2007"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType DataStoreNode_2008 = getElementType("org.eclipse.uml2.diagram.activity.DataStoreNode_2008"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType CentralBufferNode_2009 = getElementType("org.eclipse.uml2.diagram.activity.CentralBufferNode_2009"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType OpaqueAction_2010 = getElementType("org.eclipse.uml2.diagram.activity.OpaqueAction_2010"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType FlowFinalNode_2011 = getElementType("org.eclipse.uml2.diagram.activity.FlowFinalNode_2011"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType ForkNode_2012 = getElementType("org.eclipse.uml2.diagram.activity.ForkNode_2012"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType JoinNode_2013 = getElementType("org.eclipse.uml2.diagram.activity.JoinNode_2013"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType Pin_2014 = getElementType("org.eclipse.uml2.diagram.activity.Pin_2014"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType CreateObjectAction_2015 = getElementType("org.eclipse.uml2.diagram.activity.CreateObjectAction_2015"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType AddStructuralFeatureValueAction_2016 = getElementType("org.eclipse.uml2.diagram.activity.AddStructuralFeatureValueAction_2016"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType CallBehaviorAction_2017 = getElementType("org.eclipse.uml2.diagram.activity.CallBehaviorAction_2017"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType CallOperationAction_2018 = getElementType("org.eclipse.uml2.diagram.activity.CallOperationAction_2018"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType ControlFlow_4001 = getElementType("org.eclipse.uml2.diagram.activity.ControlFlow_4001"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final IElementType ObjectFlow_4002 = getElementType("org.eclipse.uml2.diagram.activity.ObjectFlow_4002"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ private static IElementType getElementType(String id) { >+ return ElementTypeRegistry.getInstance().getType(id); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static Set KNOWN_ELEMENT_TYPES; >+ >+ /** >+ * @generated >+ */ >+ public static boolean isKnownElementType(IElementType elementType) { >+ if (KNOWN_ELEMENT_TYPES == null) { >+ KNOWN_ELEMENT_TYPES = new HashSet(); >+ KNOWN_ELEMENT_TYPES.add(Activity_1000); >+ KNOWN_ELEMENT_TYPES.add(OutputPin_3001); >+ KNOWN_ELEMENT_TYPES.add(OutputPin_3002); >+ KNOWN_ELEMENT_TYPES.add(InputPin_3003); >+ KNOWN_ELEMENT_TYPES.add(InputPin_3004); >+ KNOWN_ELEMENT_TYPES.add(InputPin_3005); >+ KNOWN_ELEMENT_TYPES.add(OutputPin_3006); >+ KNOWN_ELEMENT_TYPES.add(InputPin_3007); >+ KNOWN_ELEMENT_TYPES.add(InputPin_3008); >+ KNOWN_ELEMENT_TYPES.add(AcceptEventAction_2001); >+ KNOWN_ELEMENT_TYPES.add(AcceptEventAction_2002); >+ KNOWN_ELEMENT_TYPES.add(ActivityFinalNode_2003); >+ KNOWN_ELEMENT_TYPES.add(DecisionNode_2004); >+ KNOWN_ELEMENT_TYPES.add(MergeNode_2005); >+ KNOWN_ELEMENT_TYPES.add(InitialNode_2006); >+ KNOWN_ELEMENT_TYPES.add(StructuredActivityNode_2007); >+ KNOWN_ELEMENT_TYPES.add(DataStoreNode_2008); >+ KNOWN_ELEMENT_TYPES.add(CentralBufferNode_2009); >+ KNOWN_ELEMENT_TYPES.add(OpaqueAction_2010); >+ KNOWN_ELEMENT_TYPES.add(FlowFinalNode_2011); >+ KNOWN_ELEMENT_TYPES.add(ForkNode_2012); >+ KNOWN_ELEMENT_TYPES.add(JoinNode_2013); >+ KNOWN_ELEMENT_TYPES.add(Pin_2014); >+ KNOWN_ELEMENT_TYPES.add(CreateObjectAction_2015); >+ KNOWN_ELEMENT_TYPES.add(AddStructuralFeatureValueAction_2016); >+ KNOWN_ELEMENT_TYPES.add(CallBehaviorAction_2017); >+ KNOWN_ELEMENT_TYPES.add(CallOperationAction_2018); >+ KNOWN_ELEMENT_TYPES.add(ControlFlow_4001); >+ KNOWN_ELEMENT_TYPES.add(ObjectFlow_4002); >+ } >+ return KNOWN_ELEMENT_TYPES.contains(elementType); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static class Initializers { >+ >+ /** >+ * @generated >+ */ >+ public static final IObjectInitializer AcceptEventAction_2002 = new ObjectInitializer(org.eclipse.uml2.uml.UMLPackage.eINSTANCE.getAcceptEventAction()) { >+ >+ protected void init() { >+ add(createExpressionFeatureInitializer(UMLPackage.eINSTANCE.getAcceptEventAction_Trigger(), new UMLAbstractExpression(UMLPackage.eINSTANCE.getAcceptEventAction()) { >+ >+ protected Object doEvaluate(Object context, Map env) { >+ AcceptEventAction self = (AcceptEventAction) context; >+ return Java.initAcceptTimeEventActionTrigger(self); >+ } >+ })); >+ } >+ }; // AcceptEventAction_2002 ObjectInitializer >+ >+ /** >+ * @generated >+ */ >+ private Initializers() { >+ } >+ >+ /** >+ * @generated >+ */ >+ public static interface IObjectInitializer { >+ >+ /** >+ * @generated >+ */ >+ public void init(EObject instance); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static abstract class ObjectInitializer implements IObjectInitializer { >+ >+ /** >+ * @generated >+ */ >+ final EClass element; >+ >+ /** >+ * @generated >+ */ >+ private List featureInitializers = new ArrayList(); >+ >+ /** >+ * @generated >+ */ >+ ObjectInitializer(EClass element) { >+ this.element = element; >+ init(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected abstract void init(); >+ >+ /** >+ * @generated >+ */ >+ protected final FeatureInitializer add(FeatureInitializer initializer) { >+ featureInitializers.add(initializer); >+ return initializer; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void init(EObject instance) { >+ for (java.util.Iterator it = featureInitializers.iterator(); it.hasNext();) { >+ FeatureInitializer nextExpr = (FeatureInitializer) it.next(); >+ try { >+ nextExpr.init(instance); >+ } catch (RuntimeException e) { >+ UMLDiagramEditorPlugin.getInstance().logError("Feature initialization failed", e); //$NON-NLS-1$ >+ } >+ } >+ } >+ } // end of ObjectInitializer >+ >+ /** >+ * @generated >+ */ >+ interface FeatureInitializer { >+ >+ /** >+ * @generated >+ */ >+ void init(EObject contextInstance); >+ } >+ >+ /** >+ * @generated >+ */ >+ static FeatureInitializer createNewElementFeatureInitializer(EStructuralFeature initFeature, ObjectInitializer[] newObjectInitializers) { >+ final EStructuralFeature feature = initFeature; >+ final ObjectInitializer[] initializers = newObjectInitializers; >+ return new FeatureInitializer() { >+ >+ public void init(EObject contextInstance) { >+ for (int i = 0; i < initializers.length; i++) { >+ EObject newInstance = initializers[i].element.getEPackage().getEFactoryInstance().create(initializers[i].element); >+ if (feature.isMany()) { >+ ((Collection) contextInstance.eGet(feature)).add(newInstance); >+ } else { >+ contextInstance.eSet(feature, newInstance); >+ } >+ initializers[i].init(newInstance); >+ } >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ static FeatureInitializer createExpressionFeatureInitializer(EStructuralFeature initFeature, UMLAbstractExpression valueExpression) { >+ final EStructuralFeature feature = initFeature; >+ final UMLAbstractExpression expression = valueExpression; >+ return new FeatureInitializer() { >+ >+ public void init(EObject contextInstance) { >+ expression.assignTo(feature, contextInstance); >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ static class Java { >+ >+ /** >+ * @generated NOT >+ */ >+ private static EList initAcceptTimeEventActionTrigger(AcceptEventAction self) { >+ new AcceptEventAction_2002_Initializer().init(self); >+ return new BasicEList(); >+ } >+ } //Java >+ } // end of Initializers >+} >Index: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorLinkHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorLinkHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorLinkHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorLinkHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,84 @@ >+package org.eclipse.uml2.diagram.activity.navigator; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.ecore.resource.Resource; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.jface.viewers.StructuredSelection; >+import org.eclipse.ui.IEditorInput; >+import org.eclipse.ui.IEditorPart; >+import org.eclipse.ui.IWorkbenchPage; >+import org.eclipse.ui.navigator.ILinkHelper; >+import org.eclipse.ui.part.FileEditorInput; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditor; >+ >+/** >+ * @generated >+ */ >+public class UMLNavigatorLinkHelper implements ILinkHelper { >+ >+ /** >+ * @generated >+ */ >+ public IStructuredSelection findSelection(IEditorInput anInput) { >+ return StructuredSelection.EMPTY; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection) { >+ if (aSelection == null || aSelection.isEmpty()) { >+ return; >+ } >+ if (aSelection.getFirstElement() instanceof UMLAbstractNavigatorItem) { >+ UMLAbstractNavigatorItem navigatorItem = (UMLAbstractNavigatorItem) aSelection.getFirstElement(); >+ if (!ActivityEditPart.MODEL_ID.equals(navigatorItem.getModelID())) { >+ return; >+ } >+ Object parentFile = navigatorItem.getParent(); >+ while (parentFile instanceof UMLAbstractNavigatorItem) { >+ parentFile = ((UMLAbstractNavigatorItem) parentFile).getParent(); >+ } >+ if (false == parentFile instanceof IFile) { >+ return; >+ } >+ IEditorInput fileInput = new FileEditorInput((IFile) parentFile); >+ IEditorPart editor = aPage.findEditor(fileInput); >+ if (editor == null) { >+ return; >+ } >+ aPage.bringToTop(editor); >+ if (editor instanceof UMLDiagramEditor) { >+ UMLDiagramEditor diagramEditor = (UMLDiagramEditor) editor; >+ Resource diagramResource = diagramEditor.getDiagram().eResource(); >+ >+ View navigatorView = null; >+ if (navigatorItem instanceof UMLNavigatorItem) { >+ navigatorView = ((UMLNavigatorItem) navigatorItem).getView(); >+ } else if (navigatorItem instanceof UMLNavigatorGroup) { >+ UMLNavigatorGroup group = (UMLNavigatorGroup) navigatorItem; >+ if (group.getParent() instanceof UMLNavigatorItem) { >+ navigatorView = ((UMLNavigatorItem) group.getParent()).getView(); >+ } >+ } >+ >+ if (navigatorView == null) { >+ return; >+ } >+ EObject selectedView = diagramResource.getEObject(navigatorView.eResource().getURIFragment(navigatorView)); >+ if (selectedView == null) { >+ return; >+ } >+ EditPart selectedEditPart = (EditPart) diagramEditor.getDiagramGraphicalViewer().getEditPartRegistry().get(selectedView); >+ if (selectedEditPart != null) { >+ diagramEditor.getDiagramGraphicalViewer().select(selectedEditPart); >+ } >+ } >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/UMLEditPartFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/UMLEditPartFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/UMLEditPartFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/UMLEditPartFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,233 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.FigureUtilities; >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Dimension; >+import org.eclipse.draw2d.geometry.Rectangle; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPartFactory; >+import org.eclipse.gef.tools.CellEditorLocator; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.viewers.CellEditor; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.widgets.Text; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class UMLEditPartFactory implements EditPartFactory { >+ >+ /** >+ * @generated >+ */ >+ public static final String EXTERNAL_NODE_LABELS_LAYER = "External Node Labels"; //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public EditPart createEditPart(EditPart context, Object model) { >+ if (model instanceof View) { >+ View view = (View) model; >+ int viewVisualID = UMLVisualIDRegistry.getVisualID(view); >+ switch (viewVisualID) { >+ case AcceptEventActionEditPart.VISUAL_ID: >+ return new AcceptEventActionEditPart(view); >+ case AcceptEventAction2EditPart.VISUAL_ID: >+ return new AcceptEventAction2EditPart(view); >+ case ActivityFinalNodeEditPart.VISUAL_ID: >+ return new ActivityFinalNodeEditPart(view); >+ case DecisionNodeEditPart.VISUAL_ID: >+ return new DecisionNodeEditPart(view); >+ case MergeNodeEditPart.VISUAL_ID: >+ return new MergeNodeEditPart(view); >+ case InitialNodeEditPart.VISUAL_ID: >+ return new InitialNodeEditPart(view); >+ case StructuredActivityNodeEditPart.VISUAL_ID: >+ return new StructuredActivityNodeEditPart(view); >+ case DataStoreNodeEditPart.VISUAL_ID: >+ return new DataStoreNodeEditPart(view); >+ case CentralBufferNodeEditPart.VISUAL_ID: >+ return new CentralBufferNodeEditPart(view); >+ case OpaqueActionEditPart.VISUAL_ID: >+ return new OpaqueActionEditPart(view); >+ case OpaqueActionNameEditPart.VISUAL_ID: >+ return new OpaqueActionNameEditPart(view); >+ case FlowFinalNodeEditPart.VISUAL_ID: >+ return new FlowFinalNodeEditPart(view); >+ case ForkNodeEditPart.VISUAL_ID: >+ return new ForkNodeEditPart(view); >+ case JoinNodeEditPart.VISUAL_ID: >+ return new JoinNodeEditPart(view); >+ case PinEditPart.VISUAL_ID: >+ return new PinEditPart(view); >+ case PinNameEditPart.VISUAL_ID: >+ return new PinNameEditPart(view); >+ case CreateObjectActionEditPart.VISUAL_ID: >+ return new CreateObjectActionEditPart(view); >+ case CreateObjectActionNameEditPart.VISUAL_ID: >+ return new CreateObjectActionNameEditPart(view); >+ case AddStructuralFeatureValueActionEditPart.VISUAL_ID: >+ return new AddStructuralFeatureValueActionEditPart(view); >+ case AddStructuralFeatureValueActionNameEditPart.VISUAL_ID: >+ return new AddStructuralFeatureValueActionNameEditPart(view); >+ case CallBehaviorActionEditPart.VISUAL_ID: >+ return new CallBehaviorActionEditPart(view); >+ case CallBehaviorActionNameEditPart.VISUAL_ID: >+ return new CallBehaviorActionNameEditPart(view); >+ case CallOperationActionEditPart.VISUAL_ID: >+ return new CallOperationActionEditPart(view); >+ case CallOperationActionNameEditPart.VISUAL_ID: >+ return new CallOperationActionNameEditPart(view); >+ case OutputPinEditPart.VISUAL_ID: >+ return new OutputPinEditPart(view); >+ case OutputPinNameEditPart.VISUAL_ID: >+ return new OutputPinNameEditPart(view); >+ case OutputPin2EditPart.VISUAL_ID: >+ return new OutputPin2EditPart(view); >+ case OutputPinName2EditPart.VISUAL_ID: >+ return new OutputPinName2EditPart(view); >+ case InputPinEditPart.VISUAL_ID: >+ return new InputPinEditPart(view); >+ case InputPinNameEditPart.VISUAL_ID: >+ return new InputPinNameEditPart(view); >+ case InputPin2EditPart.VISUAL_ID: >+ return new InputPin2EditPart(view); >+ case InputPinName2EditPart.VISUAL_ID: >+ return new InputPinName2EditPart(view); >+ case InputPin3EditPart.VISUAL_ID: >+ return new InputPin3EditPart(view); >+ case InputPinName3EditPart.VISUAL_ID: >+ return new InputPinName3EditPart(view); >+ case OutputPin3EditPart.VISUAL_ID: >+ return new OutputPin3EditPart(view); >+ case OutputPinName3EditPart.VISUAL_ID: >+ return new OutputPinName3EditPart(view); >+ case InputPin4EditPart.VISUAL_ID: >+ return new InputPin4EditPart(view); >+ case InputPinName4EditPart.VISUAL_ID: >+ return new InputPinName4EditPart(view); >+ case InputPin5EditPart.VISUAL_ID: >+ return new InputPin5EditPart(view); >+ case InputPinName5EditPart.VISUAL_ID: >+ return new InputPinName5EditPart(view); >+ case ActivityEditPart.VISUAL_ID: >+ return new ActivityEditPart(view); >+ case ControlFlowEditPart.VISUAL_ID: >+ return new ControlFlowEditPart(view); >+ case ObjectFlowEditPart.VISUAL_ID: >+ return new ObjectFlowEditPart(view); >+ } >+ } >+ return createUnrecognizedEditPart(context, model); >+ } >+ >+ /** >+ * @generated >+ */ >+ private EditPart createUnrecognizedEditPart(EditPart context, Object model) { >+ // Handle creation of unrecognized child node EditParts here >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static CellEditorLocator getTextCellEditorLocator(ITextAwareEditPart source) { >+ if (source.getFigure() instanceof WrapLabel) >+ return new TextCellEditorLocator((WrapLabel) source.getFigure()); >+ else { >+ IFigure figure = source.getFigure(); >+ return new LabelCellEditorLocator((Label) figure); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ static private class TextCellEditorLocator implements CellEditorLocator { >+ >+ /** >+ * @generated >+ */ >+ private WrapLabel wrapLabel; >+ >+ /** >+ * @generated >+ */ >+ public TextCellEditorLocator(WrapLabel wrapLabel) { >+ super(); >+ this.wrapLabel = wrapLabel; >+ } >+ >+ /** >+ * @generated >+ */ >+ public WrapLabel getWrapLabel() { >+ return wrapLabel; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void relocate(CellEditor celleditor) { >+ Text text = (Text) celleditor.getControl(); >+ Rectangle rect = getWrapLabel().getTextBounds().getCopy(); >+ getWrapLabel().translateToAbsolute(rect); >+ >+ if (getWrapLabel().isTextWrapped() && getWrapLabel().getText().length() > 0) >+ rect.setSize(new Dimension(text.computeSize(rect.width, SWT.DEFAULT))); >+ else { >+ int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth(); >+ rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, SWT.DEFAULT)).expand(avr * 2, 0)); >+ } >+ >+ if (!rect.equals(new Rectangle(text.getBounds()))) >+ text.setBounds(rect.x, rect.y, rect.width, rect.height); >+ } >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class LabelCellEditorLocator implements CellEditorLocator { >+ >+ /** >+ * @generated >+ */ >+ private Label label; >+ >+ /** >+ * @generated >+ */ >+ public LabelCellEditorLocator(Label label) { >+ this.label = label; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Label getLabel() { >+ return label; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void relocate(CellEditor celleditor) { >+ Text text = (Text) celleditor.getControl(); >+ Rectangle rect = getLabel().getTextBounds().getCopy(); >+ getLabel().translateToAbsolute(rect); >+ >+ int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth(); >+ rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, SWT.DEFAULT)).expand(avr * 2, 0)); >+ >+ if (!rect.equals(new Rectangle(text.getBounds()))) >+ text.setBounds(rect.x, rect.y, rect.width, rect.height); >+ } >+ } >+} >Index: icons/obj16/UMLDiagramFile.gif >=================================================================== >RCS file: icons/obj16/UMLDiagramFile.gif >diff -N icons/obj16/UMLDiagramFile.gif >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ icons/obj16/UMLDiagramFile.gif 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,6 @@ >+GIF89a¥ åëø___¿¿¿ÿßÀÀÀÿÿÀÀÀÿÿÿ?}IÒè¼²ÙÌfÀ@´?=´?=°?>¬@§B¢C? EFwM~uN{sPÔ²iÚ½|àÈ?ùúü÷ùûõøûòõûðõûíòúêðùßéøÜç÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù?,pÀB, H$ÄÃln I¤äC}< >+gô7yA×Nv¥Î¡kãLVD¢FC >+¯D-£FÁZhFQzj$$}I{? >+?Qj >+Q%¢ >+%Q&&r«©Q°±²[µQA; >Index: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditorUtil.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditorUtil.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditorUtil.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditorUtil.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,209 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import java.io.IOException; >+import java.io.InputStream; >+import java.lang.reflect.InvocationTargetException; >+import java.util.ArrayList; >+import java.util.Collections; >+import java.util.HashMap; >+import java.util.List; >+import java.util.Map; >+ >+import org.eclipse.core.resources.IResourceStatus; >+import org.eclipse.core.resources.ResourcesPlugin; >+ >+import org.eclipse.core.commands.ExecutionException; >+import org.eclipse.core.commands.operations.OperationHistoryFactory; >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IResource; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.NullProgressMonitor; >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.Path; >+import org.eclipse.core.runtime.SubProgressMonitor; >+import org.eclipse.emf.common.util.URI; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.ecore.resource.Resource; >+import org.eclipse.emf.ecore.resource.ResourceSet; >+import org.eclipse.emf.ecore.xmi.XMIResource; >+import org.eclipse.jface.dialogs.ErrorDialog; >+ >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import java.io.ByteArrayInputStream; >+ >+import org.eclipse.gmf.runtime.common.core.command.CommandResult; >+import org.eclipse.gmf.runtime.diagram.core.services.ViewService; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.util.DiagramFileCreator; >+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand; >+import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory; >+import org.eclipse.gmf.runtime.notation.Diagram; >+import org.eclipse.jface.operation.IRunnableContext; >+import org.eclipse.jface.operation.IRunnableWithProgress; >+import org.eclipse.swt.widgets.Shell; >+import org.eclipse.ui.IEditorPart; >+import org.eclipse.ui.IWorkbenchPage; >+import org.eclipse.ui.IWorkbenchWindow; >+import org.eclipse.ui.PartInitException; >+import org.eclipse.ui.ide.IDE; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+ >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.UMLFactory; >+ >+/** >+ * @generated >+ */ >+public class UMLDiagramEditorUtil { >+ >+ /** >+ * @generated >+ */ >+ public static final URI createAndOpenDiagram(IPath containerPath, String fileName, IWorkbenchWindow window, IProgressMonitor progressMonitor, boolean openEditor, boolean saveDiagram) { >+ IFile diagramFile = createNewDiagramFile(containerPath, fileName, window.getShell(), progressMonitor); >+ if (diagramFile != null && openEditor) { >+ openDiagramEditor(window, diagramFile, saveDiagram, progressMonitor); >+ } >+ return URI.createPlatformResourceURI(diagramFile.getFullPath().toString()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static final IEditorPart openDiagramEditor(IWorkbenchWindow window, IFile file, boolean saveDiagram, IProgressMonitor progressMonitor) { >+ IEditorPart editorPart = null; >+ try { >+ IWorkbenchPage page = window.getActivePage(); >+ if (page != null) { >+ editorPart = openDiagramEditor(page, file); >+ if (saveDiagram) { >+ editorPart.doSave(progressMonitor); >+ } >+ } >+ file.refreshLocal(IResource.DEPTH_ZERO, null); >+ return editorPart; >+ } catch (Exception e) { >+ UMLDiagramEditorPlugin.getInstance().logError("Error opening diagram", e); >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static final IEditorPart openDiagramEditor(IWorkbenchPage page, IFile file) throws PartInitException { >+ return IDE.openEditor(page, file); >+ } >+ >+ /** >+ * <p> >+ * This method should be called within a workspace modify operation since it creates resources. >+ * </p> >+ * @generated >+ * @return the created file resource, or <code>null</code> if the file was not created >+ */ >+ public static final IFile createNewDiagramFile(IPath containerFullPath, String fileName, Shell shell, IProgressMonitor progressMonitor) { >+ TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain(); >+ ResourceSet resourceSet = editingDomain.getResourceSet(); >+ progressMonitor.beginTask("Creating diagram and model files", 3); //$NON-NLS-1$ >+ final IFile diagramFile = createNewFile(containerFullPath, fileName, shell); >+ final Resource diagramResource = resourceSet.createResource(URI.createPlatformResourceURI(diagramFile.getFullPath().toString())); >+ List affectedFiles = new ArrayList(); >+ affectedFiles.add(diagramFile); >+ IPath modelFileRelativePath = diagramFile.getFullPath().removeFileExtension().addFileExtension("uml"); //$NON-NLS-1$ >+ IFile modelFile = diagramFile.getParent().getFile(new Path(modelFileRelativePath.lastSegment())); >+ final Resource modelResource = resourceSet.createResource(URI.createPlatformResourceURI(modelFile.getFullPath().toString())); >+ affectedFiles.add(modelFile); >+ AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain, "Creating diagram and model", affectedFiles) { //$NON-NLS-1$ >+ >+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { >+ Activity model = createInitialModel(); >+ modelResource.getContents().add(createInitialRoot(model)); >+ Diagram diagram = ViewService.createDiagram(model, ActivityEditPart.MODEL_ID, UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT); >+ if (diagram != null) { >+ diagramResource.getContents().add(diagram); >+ diagram.setName(diagramFile.getName()); >+ diagram.setElement(model); >+ } >+ try { >+ Map options = new HashMap(); >+ options.put(XMIResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$ >+ modelResource.save(options); >+ diagramResource.save(Collections.EMPTY_MAP); >+ } catch (IOException e) { >+ >+ UMLDiagramEditorPlugin.getInstance().logError("Unable to store model and diagram resources", e); //$NON-NLS-1$ >+ } >+ return CommandResult.newOKCommandResult(); >+ } >+ }; >+ >+ try { >+ OperationHistoryFactory.getOperationHistory().execute(command, new SubProgressMonitor(progressMonitor, 1), null); >+ } catch (ExecutionException e) { >+ UMLDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$ >+ } >+ >+ try { >+ modelFile.setCharset("UTF-8", new SubProgressMonitor(progressMonitor, 1)); //$NON-NLS-1$ >+ } catch (CoreException e) { >+ UMLDiagramEditorPlugin.getInstance().logError("Unable to set charset for model file", e); //$NON-NLS-1$ >+ } >+ try { >+ diagramFile.setCharset("UTF-8", new SubProgressMonitor(progressMonitor, 1)); //$NON-NLS-1$ >+ } catch (CoreException e) { >+ UMLDiagramEditorPlugin.getInstance().logError("Unable to set charset for diagram file", e); //$NON-NLS-1$ >+ } >+ >+ return diagramFile; >+ } >+ >+ /** >+ * Create a new instance of domain element associated with canvas. >+ * <!-- begin-user-doc --> >+ * <!-- end-user-doc --> >+ * @generated >+ */ >+ private static Activity createInitialModel() { >+ return UMLFactory.eINSTANCE.createActivity(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static EObject createInitialRoot(Activity model) { >+ return model; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static IFile createNewFile(IPath containerPath, String fileName, Shell shell) { >+ IPath newFilePath = containerPath.append(fileName); >+ IFile newFileHandle = ResourcesPlugin.getWorkspace().getRoot().getFile(newFilePath); >+ try { >+ createFile(newFileHandle); >+ } catch (CoreException e) { >+ ErrorDialog.openError(shell, "Creation Problems", null, e.getStatus()); >+ return null; >+ } >+ return newFileHandle; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected static void createFile(IFile fileHandle) throws CoreException { >+ try { >+ fileHandle.create(new ByteArrayInputStream(new byte[0]), false, new NullProgressMonitor()); >+ } catch (CoreException e) { >+ // If the file already existed locally, just refresh to get contents >+ if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED) { >+ fileHandle.refreshLocal(IResource.DEPTH_ZERO, null); >+ } else { >+ throw e; >+ } >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorItem.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorItem.java >diff -N src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorItem.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorItem.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,73 @@ >+package org.eclipse.uml2.diagram.activity.navigator; >+ >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class UMLNavigatorItem extends UMLAbstractNavigatorItem { >+ >+ /** >+ * @generated >+ */ >+ private View myView; >+ >+ /** >+ * @generated >+ */ >+ public UMLNavigatorItem(View view, Object parent) { >+ super(parent); >+ myView = view; >+ } >+ >+ /** >+ * @generated >+ */ >+ public View getView() { >+ return myView; >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getModelID() { >+ return UMLVisualIDRegistry.getModelID(myView); >+ } >+ >+ /** >+ * @generated >+ */ >+ public int getVisualID() { >+ return UMLVisualIDRegistry.getVisualID(myView); >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object getAdapter(Class adapter) { >+ if (View.class.isAssignableFrom(adapter) || EObject.class.isAssignableFrom(adapter)) { >+ return myView; >+ } >+ return super.getAdapter(adapter); >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean equals(Object obj) { >+ if (obj instanceof UMLNavigatorItem) { >+ EObject eObject = getView().getElement(); >+ EObject anotherEObject = ((UMLNavigatorItem) obj).getView().getElement(); >+ if (eObject == null) { >+ return anotherEObject == null; >+ } else if (anotherEObject == null) { >+ return false; >+ } >+ return eObject.eResource().getURIFragment(eObject).equals(anotherEObject.eResource().getURIFragment(anotherEObject)); >+ } >+ return super.equals(obj); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPin3EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPin3EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPin3EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPin3EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,304 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Iterator; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editparts.LayerManager; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.OutputPin3ItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLExtNodeLabelHostLayoutEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class OutputPin3EditPart extends AbstractBorderItemEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 3006; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public OutputPin3EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy()); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new OutputPin3ItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected void decorateChild(EditPart child) { >+ if (isExternalLabel(child)) { >+ return; >+ } >+ super.decorateChild(child); >+ } >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ UMLExtNodeLabelHostLayoutEditPolicy xlep = new UMLExtNodeLabelHostLayoutEditPolicy() { >+ >+ protected boolean isExternalLabel(EditPart editPart) { >+ return OutputPin3EditPart.this.isExternalLabel(editPart); >+ } >+ }; >+ xlep.setRealLayoutEditPolicy(lep); >+ return xlep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ SmallSquareFigure figure = new SmallSquareFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure getPrimaryShape() { >+ return (SmallSquareFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (isExternalLabel(editPart)) { >+ return getExternalLabelsContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ //FIXME: workaround for #154536 >+ result.getBounds().setSize(result.getPreferredSize()); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(OutputPinName3EditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isExternalLabel(EditPart childEditPart) { >+ if (childEditPart instanceof OutputPinName3EditPart) { >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getExternalLabelsContainer() { >+ LayerManager root = (LayerManager) getRoot(); >+ return root.getLayer(UMLEditPartFactory.EXTERNAL_NODE_LABELS_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().add(labelFigure); >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void removeNotify() { >+ for (Iterator it = getChildren().iterator(); it.hasNext();) { >+ EditPart childEditPart = (EditPart) it.next(); >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ } >+ } >+ super.removeNotify(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class SmallSquareFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure() { >+ >+ this.setPreferredSize(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/ActivityFinalNodeEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/ActivityFinalNodeEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/ActivityFinalNodeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/ActivityFinalNodeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,242 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.ActivityFinalNodeItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class ActivityFinalNodeEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2003; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public ActivityFinalNodeEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new ActivityFinalNodeItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ ActivityFinalFigure figure = new ActivityFinalFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ActivityFinalFigure getPrimaryShape() { >+ return (ActivityFinalFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(23), getMapMode().DPtoLP(23)); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ActivityFinalFigure extends org.eclipse.draw2d.Ellipse { >+ >+ /** >+ * @generated >+ */ >+ public ActivityFinalFigure() { >+ >+ org.eclipse.uml2.diagram.common.draw2d.CenterLayout myGenLayoutManager = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout(); >+ >+ this.setLayoutManager(myGenLayoutManager); >+ >+ this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black); >+ this.setPreferredSize(getMapMode().DPtoLP(23), getMapMode().DPtoLP(23)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(23), getMapMode().DPtoLP(23))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(23), getMapMode().DPtoLP(23))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.draw2d.Ellipse fig_0 = new org.eclipse.draw2d.Ellipse(); >+ >+ fig_0.setBackgroundColor(org.eclipse.draw2d.ColorConstants.black); >+ fig_0.setPreferredSize(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ fig_0.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ fig_0.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ >+ setFigureActivityFinalFigure_inner(fig_0); >+ >+ Object layData0 = null; >+ >+ this.add(fig_0, layData0); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.Ellipse fActivityFinalFigure_inner; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.draw2d.Ellipse getFigureActivityFinalFigure_inner() { >+ return fActivityFinalFigure_inner; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureActivityFinalFigure_inner(org.eclipse.draw2d.Ellipse fig) { >+ fActivityFinalFigure_inner = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/UMLTextNonResizableEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/UMLTextNonResizableEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/UMLTextNonResizableEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/UMLTextNonResizableEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,208 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.ColorConstants; >+import org.eclipse.draw2d.Figure; >+import org.eclipse.draw2d.Graphics; >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.RectangleFigure; >+import org.eclipse.draw2d.geometry.Rectangle; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.LayerConstants; >+import org.eclipse.gef.handles.MoveHandle; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.NonResizableEditPolicyEx; >+import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+ >+/** >+ * @generated >+ */ >+public class UMLTextNonResizableEditPolicy extends NonResizableEditPolicyEx { >+ >+ /** >+ * @generated >+ */ >+ private IFigure selectionFeedbackFigure; >+ >+ /** >+ * @generated >+ */ >+ private IFigure focusFeedbackFigure; >+ >+ /** >+ * @generated >+ */ >+ protected void showPrimarySelection() { >+ if (getHostFigure() instanceof WrapLabel) { >+ ((WrapLabel) getHostFigure()).setSelected(true); >+ ((WrapLabel) getHostFigure()).setFocus(true); >+ } else { >+ showSelection(); >+ showFocus(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void showSelection() { >+ if (getHostFigure() instanceof WrapLabel) { >+ ((WrapLabel) getHostFigure()).setSelected(true); >+ ((WrapLabel) getHostFigure()).setFocus(false); >+ } else { >+ hideSelection(); >+ addFeedback(selectionFeedbackFigure = createSelectionFeedbackFigure()); >+ refreshSelectionFeedback(); >+ hideFocus(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void hideSelection() { >+ if (getHostFigure() instanceof WrapLabel) { >+ ((WrapLabel) getHostFigure()).setSelected(false); >+ ((WrapLabel) getHostFigure()).setFocus(false); >+ } else { >+ if (selectionFeedbackFigure != null) { >+ removeFeedback(selectionFeedbackFigure); >+ selectionFeedbackFigure = null; >+ } >+ hideFocus(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void showFocus() { >+ if (getHostFigure() instanceof WrapLabel) { >+ ((WrapLabel) getHostFigure()).setFocus(true); >+ } else { >+ hideFocus(); >+ addFeedback(focusFeedbackFigure = createFocusFeedbackFigure()); >+ refreshFocusFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void hideFocus() { >+ if (getHostFigure() instanceof WrapLabel) { >+ ((WrapLabel) getHostFigure()).setFocus(false); >+ } else { >+ if (focusFeedbackFigure != null) { >+ removeFeedback(focusFeedbackFigure); >+ focusFeedbackFigure = null; >+ } >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getFeedbackLayer() { >+ return getLayer(LayerConstants.SCALED_FEEDBACK_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Rectangle getFeedbackBounds() { >+ Rectangle bounds; >+ if (getHostFigure() instanceof Label) { >+ bounds = ((Label) getHostFigure()).getTextBounds(); >+ bounds.intersect(getHostFigure().getBounds()); >+ } else { >+ bounds = getHostFigure().getBounds().getCopy(); >+ } >+ getHostFigure().getParent().translateToAbsolute(bounds); >+ getFeedbackLayer().translateToRelative(bounds); >+ return bounds; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createSelectionFeedbackFigure() { >+ if (getHostFigure() instanceof Label) { >+ Label feedbackFigure = new Label(); >+ feedbackFigure.setOpaque(true); >+ feedbackFigure.setBackgroundColor(ColorConstants.menuBackgroundSelected); >+ feedbackFigure.setForegroundColor(ColorConstants.menuForegroundSelected); >+ return feedbackFigure; >+ } else { >+ RectangleFigure feedbackFigure = new RectangleFigure(); >+ feedbackFigure.setFill(false); >+ return feedbackFigure; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFocusFeedbackFigure() { >+ return new Figure() { >+ >+ protected void paintFigure(Graphics graphics) { >+ graphics.drawFocus(getBounds().getResized(-1, -1)); >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void updateLabel(Label target) { >+ Label source = (Label) getHostFigure(); >+ target.setText(source.getText()); >+ target.setTextAlignment(source.getTextAlignment()); >+ target.setFont(source.getFont()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshSelectionFeedback() { >+ if (selectionFeedbackFigure != null) { >+ if (selectionFeedbackFigure instanceof Label) { >+ updateLabel((Label) selectionFeedbackFigure); >+ selectionFeedbackFigure.setBounds(getFeedbackBounds()); >+ } else { >+ selectionFeedbackFigure.setBounds(getFeedbackBounds().expand(5, 5)); >+ } >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFocusFeedback() { >+ if (focusFeedbackFigure != null) { >+ focusFeedbackFigure.setBounds(getFeedbackBounds()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void refreshFeedback() { >+ refreshSelectionFeedback(); >+ refreshFocusFeedback(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createSelectionHandles() { >+ MoveHandle moveHandle = new MoveHandle((GraphicalEditPart) getHost()); >+ moveHandle.setBorder(null); >+ moveHandle.setDragTracker(new DragEditPartsTrackerEx(getHost())); >+ return Collections.singletonList(moveHandle); >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/OpaqueActionNameEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/OpaqueActionNameEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/OpaqueActionNameEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/OpaqueActionNameEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,545 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.ArrayList; >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.handles.NonResizableHandleKit; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class OpaqueActionNameEditPart extends CompartmentEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5001; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ public OpaqueActionNameEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() { >+ >+ protected List createSelectionHandles() { >+ List handles = new ArrayList(); >+ NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles); >+ return handles; >+ } >+ >+ public Command getCommand(Request request) { >+ return null; >+ } >+ >+ public boolean understandsRequest(Request request) { >+ return false; >+ } >+ }); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(WrapLabel figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.OpaqueAction_2010; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addNotationalListeners() { >+ super.addNotationalListeners(); >+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeNotationalListeners() { >+ super.removeNotationalListeners(); >+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ // Parent should assign one using setLabel method >+ return null; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/AddStructuralFeatureValueActionViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/AddStructuralFeatureValueActionViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/AddStructuralFeatureValueActionViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/AddStructuralFeatureValueActionViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class AddStructuralFeatureValueActionViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(AddStructuralFeatureValueActionNameEditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName4ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName4ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName4ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName4ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; >+import org.eclipse.gmf.runtime.diagram.ui.util.MeasurementUnitHelper; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractLabelViewFactory; >+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; >+import org.eclipse.gmf.runtime.notation.Location; >+import org.eclipse.gmf.runtime.notation.Node; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class InputPinName4ViewFactory extends AbstractLabelViewFactory { >+ >+ /** >+ * @generated >+ */ >+ public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) { >+ Node view = (Node) super.createView(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint); >+ Location location = (Location) view.getLayoutConstraint(); >+ IMapMode mapMode = MeasurementUnitHelper.getMapMode(containerView.getDiagram().getMeasurementUnit()); >+ location.setX(mapMode.DPtoLP(0)); >+ location.setY(mapMode.DPtoLP(5)); >+ return view; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/MergeNodeEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/MergeNodeEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/MergeNodeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/MergeNodeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,252 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.MergeNodeItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class MergeNodeEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2005; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public MergeNodeEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new MergeNodeItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ ScalableRhombFigure figure = new ScalableRhombFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ScalableRhombFigure getPrimaryShape() { >+ return (ScalableRhombFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(20), getMapMode().DPtoLP(40)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ScalableRhombFigure extends org.eclipse.draw2d.Shape { >+ >+ /** >+ * @generated >+ */ >+ private final org.eclipse.draw2d.geometry.PointList myTemplate = new org.eclipse.draw2d.geometry.PointList(); >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.geometry.Rectangle myTemplateBounds; >+ >+ /** >+ * @generated >+ */ >+ public void addPoint(org.eclipse.draw2d.geometry.Point point) { >+ myTemplate.addPoint(point); >+ myTemplateBounds = null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void fillShape(org.eclipse.draw2d.Graphics graphics) { >+ org.eclipse.draw2d.geometry.Rectangle bounds = getBounds(); >+ graphics.pushState(); >+ graphics.translate(bounds.x, bounds.y); >+ graphics.fillPolygon(scalePointList()); >+ graphics.popState(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void outlineShape(org.eclipse.draw2d.Graphics graphics) { >+ org.eclipse.draw2d.geometry.Rectangle bounds = getBounds(); >+ graphics.pushState(); >+ graphics.translate(bounds.x, bounds.y); >+ graphics.drawPolygon(scalePointList()); >+ graphics.popState(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.geometry.Rectangle getTemplateBounds() { >+ if (myTemplateBounds == null) { >+ myTemplateBounds = new org.eclipse.draw2d.geometry.Rectangle(); >+ myTemplateBounds = myTemplate.getBounds().union(0, 0); >+ //just safety -- we are going to use this as divider >+ if (myTemplateBounds.width < 1) { >+ myTemplateBounds.width = 1; >+ } >+ if (myTemplateBounds.height < 1) { >+ myTemplateBounds.height = 1; >+ } >+ } >+ return myTemplateBounds; >+ } >+ >+ /** >+ * @generated >+ */ >+ private int[] scalePointList() { >+ org.eclipse.draw2d.geometry.Rectangle pointsBounds = getTemplateBounds(); >+ org.eclipse.draw2d.geometry.Rectangle actualBounds = getBounds(); >+ >+ float xScale = ((float) actualBounds.width) / pointsBounds.width; >+ float yScale = ((float) actualBounds.height) / pointsBounds.height; >+ >+ if (xScale == 1 && yScale == 1) { >+ return myTemplate.toIntArray(); >+ } >+ int[] scaled = (int[]) myTemplate.toIntArray().clone(); >+ for (int i = 0; i < scaled.length; i += 2) { >+ scaled[i] = (int) Math.floor(scaled[i] * xScale); >+ scaled[i + 1] = (int) Math.floor(scaled[i + 1] * yScale); >+ } >+ return scaled; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ScalableRhombFigure() { >+ >+ this.setFill(true); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(20, 0)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(40, 20)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(20, 40)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(0, 20)); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/ForkNodeEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/ForkNodeEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/ForkNodeEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/ForkNodeEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class ForkNodeEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/AddStructuralFeatureValueActionCanonicalEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/AddStructuralFeatureValueActionCanonicalEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/AddStructuralFeatureValueActionCanonicalEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/AddStructuralFeatureValueActionCanonicalEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,63 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import java.util.LinkedList; >+import java.util.List; >+ >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.uml.AddStructuralFeatureValueAction; >+import org.eclipse.uml2.uml.StructuralFeatureAction; >+import org.eclipse.uml2.uml.WriteStructuralFeatureAction; >+ >+/** >+ * @generated >+ */ >+public class AddStructuralFeatureValueActionCanonicalEditPolicy extends CanonicalEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected List getSemanticChildrenList() { >+ List result = new LinkedList(); >+ EObject modelObject = ((View) getHost().getModel()).getElement(); >+ View viewObject = (View) getHost().getModel(); >+ EObject nextValue; >+ int nodeVID; >+ nextValue = ((AddStructuralFeatureValueAction) modelObject).getInsertAt(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (InputPinEditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ nextValue = ((WriteStructuralFeatureAction) modelObject).getValue(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (InputPin2EditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ nextValue = ((StructuralFeatureAction) modelObject).getObject(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (InputPin3EditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean shouldDeleteView(View view) { >+ return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getDefaultFactoryHint() { >+ return null; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin2EditHelperAdvice.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin2EditHelperAdvice.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin2EditHelperAdvice.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin2EditHelperAdvice.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,9 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice; >+ >+/** >+ * @generated >+ */ >+public class InputPin2EditHelperAdvice extends AbstractEditHelperAdvice { >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinName3ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinName3ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinName3ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinName3ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; >+import org.eclipse.gmf.runtime.diagram.ui.util.MeasurementUnitHelper; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractLabelViewFactory; >+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; >+import org.eclipse.gmf.runtime.notation.Location; >+import org.eclipse.gmf.runtime.notation.Node; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class OutputPinName3ViewFactory extends AbstractLabelViewFactory { >+ >+ /** >+ * @generated >+ */ >+ public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) { >+ Node view = (Node) super.createView(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint); >+ Location location = (Location) view.getLayoutConstraint(); >+ IMapMode mapMode = MeasurementUnitHelper.getMapMode(containerView.getDiagram().getMeasurementUnit()); >+ location.setX(mapMode.DPtoLP(0)); >+ location.setY(mapMode.DPtoLP(5)); >+ return view; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPin3ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPin3ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/OutputPin3ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/OutputPin3ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName3EditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class OutputPin3ViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.OutputPin3EditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(OutputPinName3EditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/expressions/UMLAbstractExpression.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/expressions/UMLAbstractExpression.java >diff -N src/org/eclipse/uml2/diagram/activity/expressions/UMLAbstractExpression.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/expressions/UMLAbstractExpression.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,210 @@ >+package org.eclipse.uml2.diagram.activity.expressions; >+ >+import java.math.BigDecimal; >+import java.math.BigInteger; >+import java.util.Collection; >+import java.util.Collections; >+import java.util.Iterator; >+import java.util.Map; >+ >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Platform; >+import org.eclipse.core.runtime.Status; >+import org.eclipse.emf.ecore.EClassifier; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.ecore.EStructuralFeature; >+import org.eclipse.emf.ecore.ETypedElement; >+import org.eclipse.emf.ecore.util.EcoreUtil; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin; >+ >+/** >+ * @generated >+ */ >+public abstract class UMLAbstractExpression { >+ >+ /** >+ * @generated >+ */ >+ private static final boolean DISABLED_NO_IMPL_EXCEPTION_LOG = Boolean.valueOf( >+ Platform.getDebugOption(UMLDiagramEditorPlugin.getInstance().getBundle().getSymbolicName() + "/debug/disableNoExprImplExceptionLog")).booleanValue(); >+ >+ /** >+ * @generated >+ */ >+ private String body; >+ >+ /** >+ * @generated >+ */ >+ private EClassifier context; >+ >+ /** >+ * @generated >+ */ >+ private IStatus status = Status.OK_STATUS; >+ >+ /** >+ * @generated >+ */ >+ protected UMLAbstractExpression(EClassifier context) { >+ this.context = context; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected UMLAbstractExpression(String body, EClassifier context, Map env) { >+ this.body = body; >+ this.context = context; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setStatus(int severity, String message, Throwable throwable) { >+ String pluginID = UMLDiagramEditorPlugin.ID; >+ this.status = new Status(severity, pluginID, -1, (message != null) ? message : "", throwable); //$NON-NLS-1$ >+ if (!this.status.isOK()) { >+ UMLDiagramEditorPlugin.getInstance().logError("Expression problem:" + message + "body:" + body, throwable); //$NON-NLS-1$ //$NON-NLS-2$ >+ >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected abstract Object doEvaluate(Object context, Map env); >+ >+ /** >+ * @generated >+ */ >+ public Object evaluate(Object context) { >+ return evaluate(context, Collections.EMPTY_MAP); >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object evaluate(Object context, Map env) { >+ if (context().isInstance(context)) { >+ try { >+ return doEvaluate(context, env); >+ } catch (Exception e) { >+ if (DISABLED_NO_IMPL_EXCEPTION_LOG && e instanceof NoImplException) { >+ return null; >+ } >+ UMLDiagramEditorPlugin.getInstance().logError("Expression evaluation failure: " + body, e); >+ } >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IStatus getStatus() { >+ return status; >+ } >+ >+ /** >+ * @generated >+ */ >+ public String body() { >+ return body; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EClassifier context() { >+ return context; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void assignTo(EStructuralFeature feature, EObject target) { >+ Object value = evaluate(target); >+ value = (value != null) ? performCast(value, feature) : null; >+ if (feature.isMany()) { >+ Collection destCollection = (Collection) target.eGet(feature); >+ destCollection.clear(); >+ if (value instanceof Collection) { >+ Collection valueCollection = (Collection) value; >+ for (Iterator it = valueCollection.iterator(); it.hasNext();) { >+ destCollection.add(performCast(it.next(), feature)); >+ } >+ } else { >+ destCollection.add(value); >+ } >+ return; >+ } >+ target.eSet(feature, value); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Object performCast(Object value, ETypedElement targetType) { >+ if (targetType.getEType() == null || targetType.getEType().getInstanceClass() == null) { >+ return value; >+ } >+ Class targetClass = targetType.getEType().getInstanceClass(); >+ if (value != null && value instanceof Number) { >+ Number num = (Number) value; >+ Class valClass = value.getClass(); >+ Class targetWrapperClass = targetClass; >+ if (targetClass.isPrimitive()) { >+ targetWrapperClass = EcoreUtil.wrapperClassFor(targetClass); >+ } >+ if (valClass.equals(targetWrapperClass)) { >+ return value; >+ } >+ if (Number.class.isAssignableFrom(targetWrapperClass)) { >+ if (targetWrapperClass.equals(Byte.class)) >+ return new Byte(num.byteValue()); >+ if (targetWrapperClass.equals(Integer.class)) >+ return new Integer(num.intValue()); >+ if (targetWrapperClass.equals(Short.class)) >+ return new Short(num.shortValue()); >+ if (targetWrapperClass.equals(Long.class)) >+ return new Long(num.longValue()); >+ if (targetWrapperClass.equals(BigInteger.class)) >+ return BigInteger.valueOf(num.longValue()); >+ if (targetWrapperClass.equals(Float.class)) >+ return new Float(num.floatValue()); >+ if (targetWrapperClass.equals(Double.class)) >+ return new Double(num.doubleValue()); >+ if (targetWrapperClass.equals(BigDecimal.class)) >+ return new BigDecimal(num.doubleValue()); >+ } >+ } >+ return value; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static final UMLAbstractExpression createNullExpression(EClassifier context) { >+ return new UMLAbstractExpression(context) { >+ >+ protected Object doEvaluate(Object context, Map env) { >+ // TODO - log entry about not provider available for this expression >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static class NoImplException extends RuntimeException { >+ >+ /** >+ * @generated >+ */ >+ public NoImplException(String message) { >+ super(message); >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/ForkNodeEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/ForkNodeEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/ForkNodeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/ForkNodeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,206 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.ForkNodeItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class ForkNodeEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2012; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public ForkNodeEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new ForkNodeItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ VerticalForkJoinFigure figure = new VerticalForkJoinFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public VerticalForkJoinFigure getPrimaryShape() { >+ return (VerticalForkJoinFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(4), getMapMode().DPtoLP(50)); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NORTH | PositionConstants.SOUTH); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class VerticalForkJoinFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public VerticalForkJoinFigure() { >+ >+ this.setBackgroundColor(org.eclipse.draw2d.ColorConstants.black); >+ this.setPreferredSize(getMapMode().DPtoLP(4), getMapMode().DPtoLP(50)); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(4), getMapMode().DPtoLP(50))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: .classpath >=================================================================== >RCS file: .classpath >diff -N .classpath >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .classpath 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,8 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<classpath> >+ <classpathentry kind="src" path="src"/> >+ <classpathentry kind="src" path="custom-src"/> >+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> >+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> >+ <classpathentry kind="output" path="bin"/> >+</classpath> >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InputPin5ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InputPin5ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InputPin5ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InputPin5ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName5EditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InputPin5ViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.InputPin5EditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(InputPinName5EditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin4ItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin4ItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin4ItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin4ItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class InputPin4ItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/AcceptEventActionEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/AcceptEventActionEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/AcceptEventActionEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/AcceptEventActionEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,253 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.AcceptEventActionItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class AcceptEventActionEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2001; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public AcceptEventActionEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AcceptEventActionItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ AcceptEventActionFigure figure = new AcceptEventActionFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public AcceptEventActionFigure getPrimaryShape() { >+ return (AcceptEventActionFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(80), getMapMode().DPtoLP(50)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class AcceptEventActionFigure extends org.eclipse.draw2d.Shape { >+ >+ /** >+ * @generated >+ */ >+ private final org.eclipse.draw2d.geometry.PointList myTemplate = new org.eclipse.draw2d.geometry.PointList(); >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.geometry.Rectangle myTemplateBounds; >+ >+ /** >+ * @generated >+ */ >+ public void addPoint(org.eclipse.draw2d.geometry.Point point) { >+ myTemplate.addPoint(point); >+ myTemplateBounds = null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void fillShape(org.eclipse.draw2d.Graphics graphics) { >+ org.eclipse.draw2d.geometry.Rectangle bounds = getBounds(); >+ graphics.pushState(); >+ graphics.translate(bounds.x, bounds.y); >+ graphics.fillPolygon(scalePointList()); >+ graphics.popState(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void outlineShape(org.eclipse.draw2d.Graphics graphics) { >+ org.eclipse.draw2d.geometry.Rectangle bounds = getBounds(); >+ graphics.pushState(); >+ graphics.translate(bounds.x, bounds.y); >+ graphics.drawPolygon(scalePointList()); >+ graphics.popState(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.geometry.Rectangle getTemplateBounds() { >+ if (myTemplateBounds == null) { >+ myTemplateBounds = new org.eclipse.draw2d.geometry.Rectangle(); >+ myTemplateBounds = myTemplate.getBounds().union(0, 0); >+ //just safety -- we are going to use this as divider >+ if (myTemplateBounds.width < 1) { >+ myTemplateBounds.width = 1; >+ } >+ if (myTemplateBounds.height < 1) { >+ myTemplateBounds.height = 1; >+ } >+ } >+ return myTemplateBounds; >+ } >+ >+ /** >+ * @generated >+ */ >+ private int[] scalePointList() { >+ org.eclipse.draw2d.geometry.Rectangle pointsBounds = getTemplateBounds(); >+ org.eclipse.draw2d.geometry.Rectangle actualBounds = getBounds(); >+ >+ float xScale = ((float) actualBounds.width) / pointsBounds.width; >+ float yScale = ((float) actualBounds.height) / pointsBounds.height; >+ >+ if (xScale == 1 && yScale == 1) { >+ return myTemplate.toIntArray(); >+ } >+ int[] scaled = (int[]) myTemplate.toIntArray().clone(); >+ for (int i = 0; i < scaled.length; i += 2) { >+ scaled[i] = (int) Math.floor(scaled[i] * xScale); >+ scaled[i + 1] = (int) Math.floor(scaled[i + 1] * yScale); >+ } >+ return scaled; >+ } >+ >+ /** >+ * @generated >+ */ >+ public AcceptEventActionFigure() { >+ >+ this.setFill(true); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(0, 0)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(50, 0)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(50, 40)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(0, 40)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(10, 20)); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityCanonicalEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityCanonicalEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityCanonicalEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityCanonicalEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,533 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import java.util.Collection; >+import java.util.Collections; >+import java.util.HashMap; >+import java.util.Iterator; >+import java.util.LinkedList; >+import java.util.List; >+import java.util.Map; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand; >+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalConnectionEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewRequest; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.notation.Diagram; >+import org.eclipse.gmf.runtime.notation.Edge; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventAction2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityFinalNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CentralBufferNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ControlFlowEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.DataStoreNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.DecisionNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.FlowFinalNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ForkNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InitialNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin5EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.JoinNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.MergeNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ObjectFlowEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.PinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.StructuredActivityNodeEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityEdge; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class ActivityCanonicalEditPolicy extends CanonicalConnectionEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected List getSemanticChildrenList() { >+ List result = new LinkedList(); >+ EObject modelObject = ((View) getHost().getModel()).getElement(); >+ View viewObject = (View) getHost().getModel(); >+ EObject nextValue; >+ int nodeVID; >+ for (Iterator values = ((Activity) modelObject).getNodes().iterator(); values.hasNext();) { >+ nextValue = (EObject) values.next(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ switch (nodeVID) { >+ case AcceptEventActionEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case AcceptEventAction2EditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case ActivityFinalNodeEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case DecisionNodeEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case MergeNodeEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case InitialNodeEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case DataStoreNodeEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case CentralBufferNodeEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case OpaqueActionEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case FlowFinalNodeEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case ForkNodeEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case JoinNodeEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case PinEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case CreateObjectActionEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case AddStructuralFeatureValueActionEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case CallBehaviorActionEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ case CallOperationActionEditPart.VISUAL_ID: { >+ result.add(nextValue); >+ break; >+ } >+ } >+ } >+ for (Iterator values = ((Activity) modelObject).getGroups().iterator(); values.hasNext();) { >+ nextValue = (EObject) values.next(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (StructuredActivityNodeEditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ } >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean shouldDeleteView(View view) { >+ return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getDefaultFactoryHint() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getSemanticConnectionsList() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getSourceElement(EObject relationship) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getTargetElement(EObject relationship) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean shouldIncludeConnection(Edge connector, Collection children) { >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshSemantic() { >+ List createdViews = new LinkedList(); >+ createdViews.addAll(refreshSemanticChildren()); >+ List createdConnectionViews = new LinkedList(); >+ createdConnectionViews.addAll(refreshSemanticConnections()); >+ createdConnectionViews.addAll(refreshConnections()); >+ >+ if (createdViews.size() > 1) { >+ // perform a layout of the container >+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host().getEditingDomain(), createdViews, host()); >+ executeCommand(new ICommandProxy(layoutCmd)); >+ } >+ >+ createdViews.addAll(createdConnectionViews); >+ makeViewsImmutable(createdViews); >+ } >+ >+ /** >+ * @generated >+ */ >+ private Collection myLinkDescriptors = new LinkedList(); >+ >+ /** >+ * @generated >+ */ >+ private Map myEObject2ViewMap = new HashMap(); >+ >+ /** >+ * @generated >+ */ >+ private Collection refreshConnections() { >+ try { >+ collectAllLinks(getDiagram()); >+ Collection existingLinks = new LinkedList(getDiagram().getEdges()); >+ for (Iterator diagramLinks = existingLinks.iterator(); diagramLinks.hasNext();) { >+ Edge nextDiagramLink = (Edge) diagramLinks.next(); >+ EObject diagramLinkObject = nextDiagramLink.getElement(); >+ EObject diagramLinkSrc = nextDiagramLink.getSource().getElement(); >+ EObject diagramLinkDst = nextDiagramLink.getTarget().getElement(); >+ int diagramLinkVisualID = UMLVisualIDRegistry.getVisualID(nextDiagramLink); >+ for (Iterator modelLinkDescriptors = myLinkDescriptors.iterator(); modelLinkDescriptors.hasNext();) { >+ LinkDescriptor nextLinkDescriptor = (LinkDescriptor) modelLinkDescriptors.next(); >+ if (diagramLinkObject == nextLinkDescriptor.getLinkElement() && diagramLinkSrc == nextLinkDescriptor.getSource() && diagramLinkDst == nextLinkDescriptor.getDestination() >+ && diagramLinkVisualID == nextLinkDescriptor.getVisualID()) { >+ diagramLinks.remove(); >+ modelLinkDescriptors.remove(); >+ } >+ } >+ } >+ deleteViews(existingLinks.iterator()); >+ return createConnections(myLinkDescriptors); >+ } finally { >+ myLinkDescriptors.clear(); >+ myEObject2ViewMap.clear(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void collectAllLinks(View view) { >+ EObject modelElement = view.getElement(); >+ int diagramElementVisualID = UMLVisualIDRegistry.getVisualID(view); >+ switch (diagramElementVisualID) { >+ case AcceptEventActionEditPart.VISUAL_ID: >+ case AcceptEventAction2EditPart.VISUAL_ID: >+ case ActivityFinalNodeEditPart.VISUAL_ID: >+ case DecisionNodeEditPart.VISUAL_ID: >+ case MergeNodeEditPart.VISUAL_ID: >+ case InitialNodeEditPart.VISUAL_ID: >+ case StructuredActivityNodeEditPart.VISUAL_ID: >+ case DataStoreNodeEditPart.VISUAL_ID: >+ case CentralBufferNodeEditPart.VISUAL_ID: >+ case OpaqueActionEditPart.VISUAL_ID: >+ case FlowFinalNodeEditPart.VISUAL_ID: >+ case ForkNodeEditPart.VISUAL_ID: >+ case JoinNodeEditPart.VISUAL_ID: >+ case PinEditPart.VISUAL_ID: >+ case CreateObjectActionEditPart.VISUAL_ID: >+ case AddStructuralFeatureValueActionEditPart.VISUAL_ID: >+ case CallBehaviorActionEditPart.VISUAL_ID: >+ case CallOperationActionEditPart.VISUAL_ID: >+ case OutputPinEditPart.VISUAL_ID: >+ case OutputPin2EditPart.VISUAL_ID: >+ case InputPinEditPart.VISUAL_ID: >+ case InputPin2EditPart.VISUAL_ID: >+ case InputPin3EditPart.VISUAL_ID: >+ case OutputPin3EditPart.VISUAL_ID: >+ case InputPin4EditPart.VISUAL_ID: >+ case InputPin5EditPart.VISUAL_ID: >+ case ActivityEditPart.VISUAL_ID: { >+ myEObject2ViewMap.put(modelElement, view); >+ storeLinks(modelElement, getDiagram()); >+ } >+ default: { >+ } >+ for (Iterator children = view.getChildren().iterator(); children.hasNext();) { >+ View childView = (View) children.next(); >+ collectAllLinks(childView); >+ } >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private Collection createConnections(Collection linkDescriptors) { >+ if (linkDescriptors.isEmpty()) { >+ return Collections.EMPTY_LIST; >+ } >+ List adapters = new LinkedList(); >+ for (Iterator linkDescriptorsIterator = linkDescriptors.iterator(); linkDescriptorsIterator.hasNext();) { >+ final LinkDescriptor nextLinkDescriptor = (LinkDescriptor) linkDescriptorsIterator.next(); >+ EditPart sourceEditPart = getEditPartFor(nextLinkDescriptor.getSource()); >+ EditPart targetEditPart = getEditPartFor(nextLinkDescriptor.getDestination()); >+ if (sourceEditPart == null || targetEditPart == null) { >+ continue; >+ } >+ CreateConnectionViewRequest.ConnectionViewDescriptor descriptor = new CreateConnectionViewRequest.ConnectionViewDescriptor(nextLinkDescriptor.getSemanticAdapter(), null, ViewUtil.APPEND, >+ false, ((IGraphicalEditPart) getHost()).getDiagramPreferencesHint()); >+ CreateConnectionViewRequest ccr = new CreateConnectionViewRequest(descriptor); >+ ccr.setType(RequestConstants.REQ_CONNECTION_START); >+ ccr.setSourceEditPart(sourceEditPart); >+ sourceEditPart.getCommand(ccr); >+ ccr.setTargetEditPart(targetEditPart); >+ ccr.setType(RequestConstants.REQ_CONNECTION_END); >+ Command cmd = targetEditPart.getCommand(ccr); >+ if (cmd != null && cmd.canExecute()) { >+ executeCommand(cmd); >+ IAdaptable viewAdapter = (IAdaptable) ccr.getNewObject(); >+ if (viewAdapter != null) { >+ adapters.add(viewAdapter); >+ } >+ } >+ } >+ return adapters; >+ } >+ >+ /** >+ * @generated >+ */ >+ private EditPart getEditPartFor(EObject modelElement) { >+ View view = (View) myEObject2ViewMap.get(modelElement); >+ if (view != null) { >+ return (EditPart) getHost().getViewer().getEditPartRegistry().get(view); >+ } >+ return null; >+ } >+ >+ /** >+ *@generated >+ */ >+ private void storeLinks(EObject container, Diagram diagram) { >+ EClass containerMetaclass = container.eClass(); >+ storeFeatureModelFacetLinks(container, containerMetaclass, diagram); >+ storeTypeModelFacetLinks(container, containerMetaclass); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void storeTypeModelFacetLinks(EObject container, EClass containerMetaclass) { >+ storeTypeModelFacetLinks_ControlFlow_4001(container, containerMetaclass); >+ storeTypeModelFacetLinks_ObjectFlow_4002(container, containerMetaclass); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void storeTypeModelFacetLinks_ControlFlow_4001(EObject container, EClass containerMetaclass) { >+ if (UMLPackage.eINSTANCE.getActivity().isSuperTypeOf(containerMetaclass)) { >+ for (Iterator values = ((Activity) container).getEdges().iterator(); values.hasNext();) { >+ EObject nextValue = ((EObject) values.next()); >+ int linkVID = UMLVisualIDRegistry.getLinkWithClassVisualID(nextValue); >+ if (ControlFlowEditPart.VISUAL_ID == linkVID) { >+ Object structuralFeatureResult = ((ActivityEdge) nextValue).getTarget(); >+ if (structuralFeatureResult instanceof EObject) { >+ EObject dst = (EObject) structuralFeatureResult; >+ structuralFeatureResult = ((ActivityEdge) nextValue).getSource(); >+ if (structuralFeatureResult instanceof EObject) { >+ EObject src = (EObject) structuralFeatureResult; >+ myLinkDescriptors.add(new LinkDescriptor(src, dst, nextValue, linkVID)); >+ } >+ } >+ } >+ } >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void storeTypeModelFacetLinks_ObjectFlow_4002(EObject container, EClass containerMetaclass) { >+ if (UMLPackage.eINSTANCE.getActivity().isSuperTypeOf(containerMetaclass)) { >+ for (Iterator values = ((Activity) container).getEdges().iterator(); values.hasNext();) { >+ EObject nextValue = ((EObject) values.next()); >+ int linkVID = UMLVisualIDRegistry.getLinkWithClassVisualID(nextValue); >+ if (ObjectFlowEditPart.VISUAL_ID == linkVID) { >+ Object structuralFeatureResult = ((ActivityEdge) nextValue).getTarget(); >+ if (structuralFeatureResult instanceof EObject) { >+ EObject dst = (EObject) structuralFeatureResult; >+ structuralFeatureResult = ((ActivityEdge) nextValue).getSource(); >+ if (structuralFeatureResult instanceof EObject) { >+ EObject src = (EObject) structuralFeatureResult; >+ myLinkDescriptors.add(new LinkDescriptor(src, dst, nextValue, linkVID)); >+ } >+ } >+ } >+ } >+ } >+ } >+ >+ /** >+ *@generated >+ */ >+ private void storeFeatureModelFacetLinks(EObject container, EClass containerMetaclass, Diagram diagram) { >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ private Diagram getDiagram() { >+ return ((View) getHost().getModel()).getDiagram(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private class LinkDescriptor { >+ >+ /** >+ * @generated >+ */ >+ private EObject mySource; >+ >+ /** >+ * @generated >+ */ >+ private EObject myDestination; >+ >+ /** >+ * @generated >+ */ >+ private EObject myLinkElement; >+ >+ /** >+ * @generated >+ */ >+ private int myVisualID; >+ >+ /** >+ * @generated >+ */ >+ private IAdaptable mySemanticAdapter; >+ >+ /** >+ * @generated >+ */ >+ protected LinkDescriptor(EObject source, EObject destination, EObject linkElement, int linkVID) { >+ this(source, destination, linkVID); >+ myLinkElement = linkElement; >+ mySemanticAdapter = new EObjectAdapter(linkElement); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LinkDescriptor(EObject source, EObject destination, IElementType elementType, int linkVID) { >+ this(source, destination, linkVID); >+ myLinkElement = null; >+ final IElementType elementTypeCopy = elementType; >+ mySemanticAdapter = new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return elementTypeCopy; >+ } >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ private LinkDescriptor(EObject source, EObject destination, int linkVID) { >+ mySource = source; >+ myDestination = destination; >+ myVisualID = linkVID; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getSource() { >+ return mySource; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getDestination() { >+ return myDestination; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getLinkElement() { >+ return myLinkElement; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected int getVisualID() { >+ return myVisualID; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IAdaptable getSemanticAdapter() { >+ return mySemanticAdapter; >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinNameViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinNameViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinNameViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinNameViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; >+import org.eclipse.gmf.runtime.diagram.ui.util.MeasurementUnitHelper; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractLabelViewFactory; >+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; >+import org.eclipse.gmf.runtime.notation.Location; >+import org.eclipse.gmf.runtime.notation.Node; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class OutputPinNameViewFactory extends AbstractLabelViewFactory { >+ >+ /** >+ * @generated >+ */ >+ public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) { >+ Node view = (Node) super.createView(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint); >+ Location location = (Location) view.getLayoutConstraint(); >+ IMapMode mapMode = MeasurementUnitHelper.getMapMode(containerView.getDiagram().getMeasurementUnit()); >+ location.setX(mapMode.DPtoLP(0)); >+ location.setY(mapMode.DPtoLP(5)); >+ return view; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin5EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin5EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin5EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin5EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,304 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Iterator; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editparts.LayerManager; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.InputPin5ItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLExtNodeLabelHostLayoutEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InputPin5EditPart extends AbstractBorderItemEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 3008; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public InputPin5EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy()); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new InputPin5ItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected void decorateChild(EditPart child) { >+ if (isExternalLabel(child)) { >+ return; >+ } >+ super.decorateChild(child); >+ } >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ UMLExtNodeLabelHostLayoutEditPolicy xlep = new UMLExtNodeLabelHostLayoutEditPolicy() { >+ >+ protected boolean isExternalLabel(EditPart editPart) { >+ return InputPin5EditPart.this.isExternalLabel(editPart); >+ } >+ }; >+ xlep.setRealLayoutEditPolicy(lep); >+ return xlep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ SmallSquareFigure figure = new SmallSquareFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure getPrimaryShape() { >+ return (SmallSquareFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (isExternalLabel(editPart)) { >+ return getExternalLabelsContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ //FIXME: workaround for #154536 >+ result.getBounds().setSize(result.getPreferredSize()); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(InputPinName5EditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isExternalLabel(EditPart childEditPart) { >+ if (childEditPart instanceof InputPinName5EditPart) { >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getExternalLabelsContainer() { >+ LayerManager root = (LayerManager) getRoot(); >+ return root.getLayer(UMLEditPartFactory.EXTERNAL_NODE_LABELS_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().add(labelFigure); >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void removeNotify() { >+ for (Iterator it = getChildren().iterator(); it.hasNext();) { >+ EditPart childEditPart = (EditPart) it.next(); >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ } >+ } >+ super.removeNotify(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class SmallSquareFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure() { >+ >+ this.setPreferredSize(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName3EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName3EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName3EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName3EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,524 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class InputPinName3EditPart extends UMLExtNodeLabelEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5008; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ static { >+ registerSnapBackPosition(UMLVisualIDRegistry.getType(InputPinName3EditPart.VISUAL_ID), new Point(0, 0)); >+ } >+ >+ /** >+ * @generated >+ */ >+ public InputPinName3EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(IFigure figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.InputPin_3005; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ IFigure label = createFigurePrim(); >+ defaultText = getLabelTextHelper(label); >+ return label; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigurePrim() { >+ return new WrapLabel(); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/ActivityFinalNodeViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/ActivityFinalNodeViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/ActivityFinalNodeViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/ActivityFinalNodeViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class ActivityFinalNodeViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.ActivityFinalNodeEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/DecisionNodeViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/DecisionNodeViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/DecisionNodeViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/DecisionNodeViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class DecisionNodeViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.DecisionNodeEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/CallOperationActionItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/CallOperationActionItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/CallOperationActionItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/CallOperationActionItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,324 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.CallOperationAction; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class CallOperationActionItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCommand(CreateElementRequest req) { >+ if (UMLElementTypes.OutputPin_3006 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getCallAction_Result()); >+ } >+ return getMSLWrapper(new CreateOutputPin_3006Command(req)); >+ } >+ if (UMLElementTypes.InputPin_3007 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getInvocationAction_Argument()); >+ } >+ return getMSLWrapper(new CreateInputPin_3007Command(req)); >+ } >+ if (UMLElementTypes.InputPin_3008 == req.getElementType()) { >+ CallOperationAction container = (CallOperationAction) (req.getContainer() instanceof View ? ((View) req.getContainer()).getElement() : req.getContainer()); >+ if (container.getTarget() != null) { >+ return super.getCreateCommand(req); >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getCallOperationAction_Target()); >+ } >+ return getMSLWrapper(new CreateInputPin_3008Command(req)); >+ } >+ return super.getCreateCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateOutputPin_3006Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateOutputPin_3006Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getCallOperationAction(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateInputPin_3007Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateInputPin_3007Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getCallOperationAction(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateInputPin_3008Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateInputPin_3008Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getCallOperationAction(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InitialNodeEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InitialNodeEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InitialNodeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InitialNodeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,207 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.InitialNodeItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class InitialNodeEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2006; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public InitialNodeEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new InitialNodeItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ ActivityInitialFigure figure = new ActivityInitialFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ActivityInitialFigure getPrimaryShape() { >+ return (ActivityInitialFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ActivityInitialFigure extends org.eclipse.draw2d.Ellipse { >+ >+ /** >+ * @generated >+ */ >+ public ActivityInitialFigure() { >+ >+ this.setBackgroundColor(org.eclipse.draw2d.ColorConstants.black); >+ this.setPreferredSize(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/AcceptEventAction2EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/AcceptEventAction2EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/AcceptEventAction2EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/AcceptEventAction2EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,253 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.AcceptEventAction2ItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class AcceptEventAction2EditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2002; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public AcceptEventAction2EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AcceptEventAction2ItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ AcceptTimeEventActionFigure figure = new AcceptTimeEventActionFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public AcceptTimeEventActionFigure getPrimaryShape() { >+ return (AcceptTimeEventActionFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(80), getMapMode().DPtoLP(50)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class AcceptTimeEventActionFigure extends org.eclipse.draw2d.Shape { >+ >+ /** >+ * @generated >+ */ >+ private final org.eclipse.draw2d.geometry.PointList myTemplate = new org.eclipse.draw2d.geometry.PointList(); >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.geometry.Rectangle myTemplateBounds; >+ >+ /** >+ * @generated >+ */ >+ public void addPoint(org.eclipse.draw2d.geometry.Point point) { >+ myTemplate.addPoint(point); >+ myTemplateBounds = null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void fillShape(org.eclipse.draw2d.Graphics graphics) { >+ org.eclipse.draw2d.geometry.Rectangle bounds = getBounds(); >+ graphics.pushState(); >+ graphics.translate(bounds.x, bounds.y); >+ graphics.fillPolygon(scalePointList()); >+ graphics.popState(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void outlineShape(org.eclipse.draw2d.Graphics graphics) { >+ org.eclipse.draw2d.geometry.Rectangle bounds = getBounds(); >+ graphics.pushState(); >+ graphics.translate(bounds.x, bounds.y); >+ graphics.drawPolygon(scalePointList()); >+ graphics.popState(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.geometry.Rectangle getTemplateBounds() { >+ if (myTemplateBounds == null) { >+ myTemplateBounds = new org.eclipse.draw2d.geometry.Rectangle(); >+ myTemplateBounds = myTemplate.getBounds().union(0, 0); >+ //just safety -- we are going to use this as divider >+ if (myTemplateBounds.width < 1) { >+ myTemplateBounds.width = 1; >+ } >+ if (myTemplateBounds.height < 1) { >+ myTemplateBounds.height = 1; >+ } >+ } >+ return myTemplateBounds; >+ } >+ >+ /** >+ * @generated >+ */ >+ private int[] scalePointList() { >+ org.eclipse.draw2d.geometry.Rectangle pointsBounds = getTemplateBounds(); >+ org.eclipse.draw2d.geometry.Rectangle actualBounds = getBounds(); >+ >+ float xScale = ((float) actualBounds.width) / pointsBounds.width; >+ float yScale = ((float) actualBounds.height) / pointsBounds.height; >+ >+ if (xScale == 1 && yScale == 1) { >+ return myTemplate.toIntArray(); >+ } >+ int[] scaled = (int[]) myTemplate.toIntArray().clone(); >+ for (int i = 0; i < scaled.length; i += 2) { >+ scaled[i] = (int) Math.floor(scaled[i] * xScale); >+ scaled[i + 1] = (int) Math.floor(scaled[i + 1] * yScale); >+ } >+ return scaled; >+ } >+ >+ /** >+ * @generated >+ */ >+ public AcceptTimeEventActionFigure() { >+ >+ this.setFill(true); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(0, 0)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(25, 0)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(0, 25)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(25, 25)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(0, 0)); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/sheet/UMLPropertySection.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/sheet/UMLPropertySection.java >diff -N src/org/eclipse/uml2/diagram/activity/sheet/UMLPropertySection.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/sheet/UMLPropertySection.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,107 @@ >+package org.eclipse.uml2.diagram.activity.sheet; >+ >+import java.util.ArrayList; >+import java.util.Iterator; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.common.notify.AdapterFactory; >+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; >+import org.eclipse.emf.edit.provider.IItemPropertySource; >+import org.eclipse.emf.edit.ui.provider.PropertySource; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.emf.transaction.util.TransactionUtil; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gmf.runtime.diagram.ui.properties.sections.AdvancedPropertySection; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.viewers.ISelection; >+import org.eclipse.jface.viewers.StructuredSelection; >+import org.eclipse.ui.IWorkbenchPart; >+import org.eclipse.ui.views.properties.IPropertySource; >+import org.eclipse.ui.views.properties.IPropertySourceProvider; >+ >+/** >+ * @generated >+ */ >+public class UMLPropertySection extends AdvancedPropertySection implements IPropertySourceProvider { >+ >+ /** >+ * @generated >+ */ >+ public IPropertySource getPropertySource(Object object) { >+ if (object instanceof IPropertySource) { >+ return (IPropertySource) object; >+ } >+ AdapterFactory af = getAdapterFactory(object); >+ if (af != null) { >+ IItemPropertySource ips = (IItemPropertySource) af.adapt(object, IItemPropertySource.class); >+ if (ips != null) { >+ return new PropertySource(object, ips); >+ } >+ } >+ if (object instanceof IAdaptable) { >+ return (IPropertySource) ((IAdaptable) object).getAdapter(IPropertySource.class); >+ } >+ return null; >+ } >+ >+ /** >+ * Modify/unwrap selection. >+ * @generated >+ */ >+ protected Object transformSelection(Object selected) { >+ if (selected instanceof EditPart) { >+ Object model = ((EditPart) selected).getModel(); >+ return model instanceof View ? ((View) model).getElement() : null; >+ } >+ if (selected instanceof View) { >+ return ((View) selected).getElement(); >+ } >+ if (selected instanceof IAdaptable) { >+ View view = (View) ((IAdaptable) selected).getAdapter(View.class); >+ if (view != null) { >+ return view.getElement(); >+ } >+ } >+ return selected; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IPropertySourceProvider getPropertySourceProvider() { >+ return this; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setInput(IWorkbenchPart part, ISelection selection) { >+ if (selection.isEmpty() || false == selection instanceof StructuredSelection) { >+ super.setInput(part, selection); >+ return; >+ } >+ final StructuredSelection structuredSelection = ((StructuredSelection) selection); >+ ArrayList transformedSelection = new ArrayList(structuredSelection.size()); >+ for (Iterator it = structuredSelection.iterator(); it.hasNext();) { >+ Object r = transformSelection(it.next()); >+ if (r != null) { >+ transformedSelection.add(r); >+ } >+ } >+ super.setInput(part, new StructuredSelection(transformedSelection)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AdapterFactory getAdapterFactory(Object object) { >+ if (getEditingDomain() instanceof AdapterFactoryEditingDomain) { >+ return ((AdapterFactoryEditingDomain) getEditingDomain()).getAdapterFactory(); >+ } >+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(object); >+ if (editingDomain != null) { >+ return ((AdapterFactoryEditingDomain) editingDomain).getAdapterFactory(); >+ } >+ return null; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLMatchingStrategy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLMatchingStrategy.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLMatchingStrategy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLMatchingStrategy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,64 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import org.eclipse.emf.common.util.URI; >+ >+import org.eclipse.emf.ecore.resource.Resource; >+ >+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditorInput; >+ >+import org.eclipse.gmf.runtime.notation.Diagram; >+ >+import org.eclipse.ui.IEditorInput; >+import org.eclipse.ui.IEditorMatchingStrategy; >+import org.eclipse.ui.IEditorPart; >+import org.eclipse.ui.IEditorReference; >+import org.eclipse.ui.PartInitException; >+ >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditorMatchingStrategy; >+ >+/** >+ * @generated >+ */ >+public class UMLMatchingStrategy implements IEditorMatchingStrategy { >+ >+ /** >+ * @generated >+ */ >+ public boolean matches(IEditorReference editorRef, IEditorInput input) { >+ IEditorInput editorInput; >+ try { >+ editorInput = editorRef.getEditorInput(); >+ } catch (PartInitException e) { >+ return false; >+ } >+ >+ if (editorInput.equals(input)) { >+ return true; >+ } >+ >+ IEditorPart editor = editorRef.getEditor(false); >+ if (input instanceof DiagramEditorInput && editor instanceof UMLDiagramEditor) { >+ Diagram editorDiagram = ((UMLDiagramEditor) editor).getDiagram(); >+ Diagram otherDiagram = ((DiagramEditorInput) input).getDiagram(); >+ return equals(editorDiagram, otherDiagram); >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean equals(Diagram editorDiagram, Diagram otherDiagram) { >+ Resource editorResource = editorDiagram.eResource(); >+ Resource otherResource = otherDiagram.eResource(); >+ if (editorResource != null && otherResource != null) { >+ URI editorURI = editorResource.getURI(); >+ URI otherURI = otherResource.getURI(); >+ String editorURIFragment = editorResource.getURIFragment(editorDiagram); >+ String otherURIFragment = otherResource.getURIFragment(otherDiagram); >+ return editorURI.equals(otherURI) && editorURIFragment.equals(otherURIFragment); >+ } >+ return false; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin2ItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin2ItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin2ItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin2ItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class InputPin2ItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: icons/linkTargetNavigatorGroup.gif >=================================================================== >RCS file: icons/linkTargetNavigatorGroup.gif >diff -N icons/linkTargetNavigatorGroup.gif >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ icons/linkTargetNavigatorGroup.gif 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+GIF89aÕÿÿr/GøØf'øÐxøàøÐf>2èÆøè°èÐøðÈÿÿÿÃ6úöºøà øØ?]FøèÒ«üößãϹ´2àÀxr+ðØ?¥l$yO@_l$?R¼2ï߯¼ 2à 6!ù,s@pH,?È#âèh:¨T0ô4® >+à?p©Ñd¢Y`B¡p8G AØ%%HÁçW¶ _B???B¥¦¥ B®©C³´µI·¸FA;Content-Type: image/gif >+ >+GIF89aÕÿÿr/GøØf'øÐxøàøÐf>2èÆøè°èÐøðÈÿÿÿÃ6úöºøà øØ?]FøèÒ«üößãϹ´2àÀxr+ðØ?¥l$yO@_l$?R¼2ï߯¼ 2à 6!ù,s@pH,?È#âèh:¨T0ô4® >+à?p©Ñd¢Y`B¡p8G AØ%%HÁçW¶ _B???B¥¦¥ B®©C³´µI·¸FA; >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin2EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin2EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin2EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin2EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,304 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Iterator; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editparts.LayerManager; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.InputPin2ItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLExtNodeLabelHostLayoutEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InputPin2EditPart extends AbstractBorderItemEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 3004; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public InputPin2EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy()); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new InputPin2ItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected void decorateChild(EditPart child) { >+ if (isExternalLabel(child)) { >+ return; >+ } >+ super.decorateChild(child); >+ } >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ UMLExtNodeLabelHostLayoutEditPolicy xlep = new UMLExtNodeLabelHostLayoutEditPolicy() { >+ >+ protected boolean isExternalLabel(EditPart editPart) { >+ return InputPin2EditPart.this.isExternalLabel(editPart); >+ } >+ }; >+ xlep.setRealLayoutEditPolicy(lep); >+ return xlep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ SmallSquareFigure figure = new SmallSquareFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure getPrimaryShape() { >+ return (SmallSquareFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (isExternalLabel(editPart)) { >+ return getExternalLabelsContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ //FIXME: workaround for #154536 >+ result.getBounds().setSize(result.getPreferredSize()); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(InputPinName2EditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isExternalLabel(EditPart childEditPart) { >+ if (childEditPart instanceof InputPinName2EditPart) { >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getExternalLabelsContainer() { >+ LayerManager root = (LayerManager) getRoot(); >+ return root.getLayer(UMLEditPartFactory.EXTERNAL_NODE_LABELS_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().add(labelFigure); >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void removeNotify() { >+ for (Iterator it = getChildren().iterator(); it.hasNext();) { >+ EditPart childEditPart = (EditPart) it.next(); >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ } >+ } >+ super.removeNotify(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class SmallSquareFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure() { >+ >+ this.setPreferredSize(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/ControlFlowEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/ControlFlowEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/ControlFlowEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/ControlFlowEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class ControlFlowEditHelper extends UMLBaseEditHelper { >+} >Index: icons/incomingLinksNavigatorGroup.gif >=================================================================== >RCS file: icons/incomingLinksNavigatorGroup.gif >diff -N icons/incomingLinksNavigatorGroup.gif >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ icons/incomingLinksNavigatorGroup.gif 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+GIF89aÕÿÿr/GøØf'øÐxøàøÐf>2èÆøè°èÐøðÈÿÿÿÃ6úöºøà øØ?]FøèÒ«üößãϹ´2àÀxr+ðØ?¥l$yO@_l$?R¼2ï߯¼ 2à 6!ù,s@pH,?È#âèh:¨T0ô4® >+à?p©Ñd¢Y`B¡p8G AØ%%HÁçW¶ _B???B¥¦¥ B®©C³´µI·¸FA;Content-Type: image/gif >+ >+GIF89aÕÿÿr/GøØf'øÐxøàøÐf>2èÆøè°èÐøðÈÿÿÿÃ6úöºøà øØ?]FøèÒ«üößãϹ´2àÀxr+ðØ?¥l$yO@_l$?R¼2ï߯¼ 2à 6!ù,s@pH,?È#âèh:¨T0ô4® >+à?p©Ñd¢Y`B¡p8G AØ%%HÁçW¶ _B???B¥¦¥ B®©C³´µI·¸FA; >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/FlowFinalNodeItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/FlowFinalNodeItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/FlowFinalNodeItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/FlowFinalNodeItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class FlowFinalNodeItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/DecisionNodeItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/DecisionNodeItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/DecisionNodeItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/DecisionNodeItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class DecisionNodeItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName2ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName2ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName2ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName2ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; >+import org.eclipse.gmf.runtime.diagram.ui.util.MeasurementUnitHelper; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractLabelViewFactory; >+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; >+import org.eclipse.gmf.runtime.notation.Location; >+import org.eclipse.gmf.runtime.notation.Node; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class InputPinName2ViewFactory extends AbstractLabelViewFactory { >+ >+ /** >+ * @generated >+ */ >+ public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) { >+ Node view = (Node) super.createView(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint); >+ Location location = (Location) view.getLayoutConstraint(); >+ IMapMode mapMode = MeasurementUnitHelper.getMapMode(containerView.getDiagram().getMeasurementUnit()); >+ location.setX(mapMode.DPtoLP(0)); >+ location.setY(mapMode.DPtoLP(5)); >+ return view; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/ActivityEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/ActivityEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/ActivityEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/ActivityEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,40 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.ActivityCanonicalEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.ActivityItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class ActivityEditPart extends DiagramEditPart { >+ >+ /** >+ * @generated >+ */ >+ public final static String MODEL_ID = "UMLActivity"; //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 1000; >+ >+ /** >+ * @generated >+ */ >+ public ActivityEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new ActivityItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new ActivityCanonicalEditPolicy()); >+ >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/CallBehaviorActionEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/CallBehaviorActionEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/CallBehaviorActionEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/CallBehaviorActionEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class CallBehaviorActionEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramActionBarContributor.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramActionBarContributor.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLDiagramActionBarContributor.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLDiagramActionBarContributor.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,23 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramActionBarContributor; >+ >+/** >+ * @generated >+ */ >+public class UMLDiagramActionBarContributor extends DiagramActionBarContributor { >+ >+ /** >+ * @generated >+ */ >+ protected Class getEditorClass() { >+ return UMLDiagramEditor.class; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getEditorId() { >+ return UMLDiagramEditor.ID; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityFinalNodeItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityFinalNodeItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityFinalNodeItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityFinalNodeItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class ActivityFinalNodeItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/ControlFlowEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/ControlFlowEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/ControlFlowEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/ControlFlowEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,79 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.Connection; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.ControlFlowItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class ControlFlowEditPart extends ConnectionNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 4001; >+ >+ /** >+ * @generated >+ */ >+ public ControlFlowEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new ControlFlowItemSemanticEditPolicy()); >+ >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected Connection createConnectionFigure() { >+ return new ActivityEdgeConnection(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ActivityEdgeConnection extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx { >+ >+ /** >+ * @generated >+ */ >+ public ActivityEdgeConnection() { >+ this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black); >+ setTargetDecoration(createTargetDecoration()); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.PolylineDecoration createTargetDecoration() { >+ org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration(); >+ // dispatchNext? >+ >+ org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList(); >+ pl.addPoint(-2, -1); >+ pl.addPoint(0, 0); >+ pl.addPoint(-2, 1); >+ df.setTemplate(pl); >+ df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3)); >+ >+ return df; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName2EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName2EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName2EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName2EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,524 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class InputPinName2EditPart extends UMLExtNodeLabelEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5007; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ static { >+ registerSnapBackPosition(UMLVisualIDRegistry.getType(InputPinName2EditPart.VISUAL_ID), new Point(0, 0)); >+ } >+ >+ /** >+ * @generated >+ */ >+ public InputPinName2EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(IFigure figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.InputPin_3004; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ IFigure label = createFigurePrim(); >+ defaultText = getLabelTextHelper(label); >+ return label; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigurePrim() { >+ return new WrapLabel(); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/CallBehaviorActionNameEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/CallBehaviorActionNameEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/CallBehaviorActionNameEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/CallBehaviorActionNameEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,545 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.ArrayList; >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.handles.NonResizableHandleKit; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class CallBehaviorActionNameEditPart extends CompartmentEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5012; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ public CallBehaviorActionNameEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() { >+ >+ protected List createSelectionHandles() { >+ List handles = new ArrayList(); >+ NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles); >+ return handles; >+ } >+ >+ public Command getCommand(Request request) { >+ return null; >+ } >+ >+ public boolean understandsRequest(Request request) { >+ return false; >+ } >+ }); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(WrapLabel figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.CallBehaviorAction_2017; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addNotationalListeners() { >+ super.addNotationalListeners(); >+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeNotationalListeners() { >+ super.removeNotationalListeners(); >+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ // Parent should assign one using setLabel method >+ return null; >+ } >+} >Index: icons/wizban/NewUMLWizard.gif >=================================================================== >RCS file: icons/wizban/NewUMLWizard.gif >diff -N icons/wizban/NewUMLWizard.gif >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ icons/wizban/NewUMLWizard.gif 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,8 @@ >+GIF89aKBçÿÿÿîñøîñ÷¸ÃÖËÓâËÓáäéòíñø;Z=[=[Òè¼²ÙÌfÀ@Ca?EcDa?FcFcHeMiOkOkQmRmToWqWqZtZt?]w _y¢`y¢`y¡c{£f~¥i?§l©o«pªsv¯z?±}³}²··?»?¼£À£À£¿¦Â©Ä©Ã¬Æ¯È ¯È ¯Ç¤²Êª¸Î®»Ð·ÃÖ¸Ä×ÂÌÜÈÑàÓÛèÔÛçÖÝéØßêÞäîÜâìæëóäéñ<\>]?=\?^?^?A`?Db?EcGeFdJgLiQnRnTpWrWrYtYt?]w`z¢_y¡`z¡c|£e~¥l©k¨su¯y?±µ··¹¼»? ½¡¾¡½¤À¤À£¿¤¿¤¿§ÁªÄ °È¯Ç °Ç£³Ê¦µÌ©¸Î»Ð®¼Ð±¾Ò´ÁÔ»ÇØ¾ÉÚÁÌÜÇÑàËÔâÍÖäÐÙæÎ×äÓÛçÕÝéÝäîÛâìàæïÞäíìðöªÃŰȰǦ¶Ì¼Ð·ÄÖ¾ÊÚÄÏÞÈÒàÊÔáÓÜèÐÙåÎ×ãÖÞéäêòâèðêïöèíôÇÒàÍ×ãÓÜçÕÞéØàêßæïÝäíÛâëëðöêïõèíóïóøîò÷æìóäêñèîôíò÷ô®_ôÛ²óáÆ×Ä¥µ³?£|u?c? ±²¨·´¼Â¹¼Â¹ÆÇ¶¼¹¬¢½ÃÇßàÞÌÆÏÎÈÑÑÌÖÙØãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,KBþH° Á*\h0R#J8Ñ!©)jÜ(1/rI`, Cf,ɲãI*1¶©ðd?)c®¤Éóf,rêìÙ Bc?iôhPRIC.-Ù4R¤Puºñ§×W¡F0Ù³hÓªMûáW¯WÃjÝzW2fÉòêÝË·o®[ºp-|û2îçsâjÖ·q¤d?G%£µR$]·#|{3?'F¨KiÓR· kH£hÉ-YfÍ >+;{ý+âÑu©RukZ]?ZNà̺Lr~ù9ôX¤U'+¾õìå±gþÃ?+pfÁ?uû<Y=®Ø¹;ê"n<åH´cëoù[»ä2ÝzõæÞu Í·Ýc¬¹É~´@HËx°Ì" >+`fn/xàut4q$>H[sRË(·Ýa¶g|ñ¤K¬?òÀ(ʦ",$ÓbfÇäÂa~_t÷à4Ð?>þ8^?CBçìVRJ(q9&óQ6ÀTù£$då\Rçå{yÀ«ð9&i$¦¬é@o fºè2L0 >+ôrL2uv)zò¹Ê¦&¸ÚrPÚT^ 'àËÉ,Ã0þÂLZiOeª)§ò?1£@2Ù¡úÀ²½" ?pÊäÊÞÅ1»PZi{¤`kØfûçAº0§#ÂËf§Êb.?'Ér2ÑÎ >+¢²ç¼¸ÖP´à *å¾ãÒb®$æËe?Ì´Ëå»a)ïØÞÊé¶#[lgòËoþ07Á1Ò§³(ï¼~ÖÛ)B»ÐVñ¾ «ñÆMý$Ë( ɲøB\P˳½LèÄÎ,Ç[Jóo2KÉ¢(q2Ã)k»Ê½.§y4J¼å[Å4ÕÎRO?ðÕX«Ü'×EjñaËåteë4KþÚ >+[M/иÂ- ^KyhØiP1Ì@½7É%ûü·Öo³|"áû®tÅkÙ@yÇ´·ÚV³Í°ÊºZ~9á;ÖÍùlX(gç6Õ¥O¸Ð}"-;Ò]÷Iâzþy³ëÍ·äm»?Ð0¿ËV·Ø±?ª8gÃ4Óã¤ç²ÛýïÓ/}Ò¡4í¢/ïÂ)k*ÿÖ??[ùæWÿÀWêy5 µ~ö=9bSÜÔóð§± O=é±IözFÀï¼ 1ÈÁ&§JVØ:ô@¤ç&ÃXÆÂ q® ¡Ã`"¤þ4£Cþ®AHD!:" ?xĸÄF(1¼%®àY1vèKòa #I£??22F@#3¨@ôÂ\Â!°l²ÅrQÈc3ôxfôñ?Íh)H#ò\ÙAÞýYÑ?ÜßzÁ¶à1?̤&3YB"2?¹JH/W=p²±;á&ùKnòì¤Ùè0QÒ§4UÉKa0E3H#< ÙÊUøâRZl_¨¤ä$;¥øÍ`6µÉMmfìÓü?fàx¦P©Å±%Î7¹Ímb³IþgÖ?f62 >+h@Q˾îLÁ`@7ªMbæógnKÝA~qtîò?Ì(°¢Ô9CË`(=ý¨Oz%óa ùÅOª¨Qx¨-ŬAÓzÓ?H°ÖµN§²¶¥ }©OÎé¹|THUFH±y&ʬWÚüãå[¤z?Hà×<{$XBUMجF°ÈQCÈ$°0jb]XÃ¢ê§ Éè0KØÂö°=¬0î¹%¢gy%ë>ÉÉÅX`°¨L^½p6/IÐc1Ú$0æ´4m$ö¶îî¤(å?H[$ÄèR!QÂEH÷>¯#u\åØj;#0¹~{jBâúÖÊÎ:nyûZÀµñ¬¹¹èKú7-Ü¢ >+rk,ø¦jÇ]òo¸³ºÔ¤Æ·ª±-¹ó4ÍÛ?ÝvF¹½]xÑÌÏe~U2ºÈ¹wr¿ÝI(¹Eô×»»?Zä¼×¶q ; >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/MergeNodeEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/MergeNodeEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/MergeNodeEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/MergeNodeEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class MergeNodeEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/CallOperationActionEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/CallOperationActionEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/CallOperationActionEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/CallOperationActionEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class CallOperationActionEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/ActivityViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/ActivityViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/ActivityViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/ActivityViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,42 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.DiagramViewFactory; >+import org.eclipse.gmf.runtime.notation.MeasurementUnit; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class ActivityViewFactory extends DiagramViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createPageStyle()); >+ styles.add(NotationFactory.eINSTANCE.createGuideStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View view, IAdaptable semanticAdapter, String diagramKind) { >+ super.decorateView(view, semanticAdapter, diagramKind); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected MeasurementUnit getMeasurementUnit() { >+ return MeasurementUnit.PIXEL_LITERAL; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InputPinViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InputPinViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinNameEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InputPinViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.InputPinEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(InputPinNameEditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/CreateObjectActionViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/CreateObjectActionViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/CreateObjectActionViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/CreateObjectActionViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class CreateObjectActionViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(CreateObjectActionNameEditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/UMLReferenceConnectionEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/UMLReferenceConnectionEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/UMLReferenceConnectionEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/UMLReferenceConnectionEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,150 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.CompoundCommand; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gef.editparts.AbstractConnectionEditPart; >+import org.eclipse.gef.editpolicies.ConnectionEditPolicy; >+import org.eclipse.gef.requests.GroupRequest; >+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand; >+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages; >+import org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants; >+import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper; >+import org.eclipse.gmf.runtime.diagram.ui.requests.GroupRequestViaKeyboard; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.dialogs.IDialogConstants; >+import org.eclipse.jface.dialogs.MessageDialogWithToggle; >+import org.eclipse.jface.preference.IPreferenceStore; >+import org.eclipse.jface.util.Assert; >+import org.eclipse.swt.widgets.Display; >+ >+/** >+ * @generated >+ */ >+public class UMLReferenceConnectionEditPolicy extends ConnectionEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ private static final String DELETE_FROM_DIAGRAM_DLG_TITLE = DiagramUIMessages.PromptingDeleteAction_DeleteFromDiagramDialog_Title; >+ >+ /** >+ * @generated >+ */ >+ private static final String DELETE_FROM_DIAGRAM_DLG_MESSAGE = DiagramUIMessages.PromptingDeleteAction_DeleteFromDiagramDialog_Message; >+ >+ /** >+ * @generated >+ */ >+ private static final String DELETE_FROM_MODEL_DLG_TOGGLE_LABEL = DiagramUIMessages.MessageDialogWithToggle_DoNotPromptAgainToggle_label; >+ >+ /** >+ * @generated >+ */ >+ protected final Command getDeleteCommand(GroupRequest deleteRequest) { >+ boolean isDeleteFromKeyBoard = deleteRequest instanceof GroupRequestViaKeyboard; >+ if (shouldDeleteSemantic()) { >+ return createDeleteSemanticCommand(deleteRequest); >+ } else { >+ boolean proceedToDeleteView = true; >+ if (isDeleteFromKeyBoard) { >+ GroupRequestViaKeyboard groupRequestViaKeyboard = (GroupRequestViaKeyboard) deleteRequest; >+ if (groupRequestViaKeyboard.isShowInformationDialog()) { >+ proceedToDeleteView = showPrompt(); >+ groupRequestViaKeyboard.setShowInformationDialog(false); >+ if (!(proceedToDeleteView)) >+ return UnexecutableCommand.INSTANCE; >+ } >+ } >+ return createDeleteViewCommand(deleteRequest); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean shouldDeleteSemantic() { >+ Assert.isTrue(getHost() instanceof AbstractConnectionEditPart); >+ AbstractConnectionEditPart cep = (AbstractConnectionEditPart) getHost(); >+ boolean isCanonical = false; >+ if (cep.getSource() != null) >+ isCanonical = IsCanonical(cep.getSource()); >+ if (cep.getTarget() != null) >+ return isCanonical ? isCanonical : IsCanonical(cep.getTarget()); >+ return isCanonical; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean IsCanonical(EditPart ep) { >+ EditPart parent = ep.getParent(); >+ return parent instanceof GraphicalEditPart ? ((GraphicalEditPart) parent).isCanonical() : false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command createDeleteViewCommand(GroupRequest deleteRequest) { >+ TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain(); >+ return new ICommandProxy(new DeleteCommand(editingDomain, (View) getHost().getModel())); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command createDeleteSemanticCommand(GroupRequest deleteRequest) { >+ TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain(); >+ EditCommandRequestWrapper semReq = new EditCommandRequestWrapper(new DestroyElementRequest(editingDomain, false), deleteRequest.getExtendedData()); >+ Command semanticCmd = getHost().getCommand(semReq); >+ if (semanticCmd != null && semanticCmd.canExecute()) { >+ CompoundCommand cc = new CompoundCommand(); >+ cc.add(semanticCmd); >+ return cc; >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean showPrompt() { >+ boolean prompt = ((IPreferenceStore) ((IGraphicalEditPart) getHost()).getDiagramPreferencesHint().getPreferenceStore()).getBoolean(IPreferenceConstants.PREF_PROMPT_ON_DEL_FROM_DIAGRAM); >+ if (prompt) >+ if (showMessageDialog()) >+ return true; >+ else >+ return false; >+ return true; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean showMessageDialog() { >+ MessageDialogWithToggle dialog = MessageDialogWithToggle.openYesNoQuestion(Display.getCurrent().getActiveShell(), DELETE_FROM_DIAGRAM_DLG_TITLE, DELETE_FROM_DIAGRAM_DLG_MESSAGE, >+ DELETE_FROM_MODEL_DLG_TOGGLE_LABEL, false, (IPreferenceStore) ((IGraphicalEditPart) getHost()).getDiagramPreferencesHint().getPreferenceStore(), >+ IPreferenceConstants.PREF_PROMPT_ON_DEL_FROM_DIAGRAM); >+ if (dialog.getReturnCode() == IDialogConstants.YES_ID) >+ return true; >+ else >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Command getCommand(Request request) { >+ if (request instanceof GroupRequestViaKeyboard) { >+ return getDeleteCommand((GroupRequest) request); >+ } >+ return super.getCommand(request); >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorSorter.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorSorter.java >diff -N src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorSorter.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorSorter.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+package org.eclipse.uml2.diagram.activity.navigator; >+ >+import org.eclipse.jface.viewers.ViewerSorter; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+ >+/** >+ * @generated >+ */ >+public class UMLNavigatorSorter extends ViewerSorter { >+ >+ /** >+ * @generated >+ */ >+ private static final int GROUP_CATEGORY = 4003; >+ >+ /** >+ * @generated >+ */ >+ public int category(Object element) { >+ if (element instanceof UMLNavigatorItem) { >+ UMLNavigatorItem item = (UMLNavigatorItem) element; >+ if (ActivityEditPart.MODEL_ID.equals(item.getModelID())) { >+ return item.getVisualID(); >+ } >+ } >+ return GROUP_CATEGORY; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinName3EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinName3EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinName3EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinName3EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,524 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class OutputPinName3EditPart extends UMLExtNodeLabelEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5010; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ static { >+ registerSnapBackPosition(UMLVisualIDRegistry.getType(OutputPinName3EditPart.VISUAL_ID), new Point(0, 0)); >+ } >+ >+ /** >+ * @generated >+ */ >+ public OutputPinName3EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(IFigure figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.OutputPin_3006; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ IFigure label = createFigurePrim(); >+ defaultText = getLabelTextHelper(label); >+ return label; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigurePrim() { >+ return new WrapLabel(); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinName2ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinName2ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinName2ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/OutputPinName2ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; >+import org.eclipse.gmf.runtime.diagram.ui.util.MeasurementUnitHelper; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractLabelViewFactory; >+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; >+import org.eclipse.gmf.runtime.notation.Location; >+import org.eclipse.gmf.runtime.notation.Node; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class OutputPinName2ViewFactory extends AbstractLabelViewFactory { >+ >+ /** >+ * @generated >+ */ >+ public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) { >+ Node view = (Node) super.createView(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint); >+ Location location = (Location) view.getLayoutConstraint(); >+ IMapMode mapMode = MeasurementUnitHelper.getMapMode(containerView.getDiagram().getMeasurementUnit()); >+ location.setX(mapMode.DPtoLP(0)); >+ location.setY(mapMode.DPtoLP(5)); >+ return view; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramPreferenceInitializer.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramPreferenceInitializer.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLDiagramPreferenceInitializer.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLDiagramPreferenceInitializer.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,17 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import org.eclipse.gmf.runtime.diagram.ui.preferences.DiagramPreferenceInitializer; >+import org.eclipse.jface.preference.IPreferenceStore; >+ >+/** >+ * @generated >+ */ >+public class UMLDiagramPreferenceInitializer extends DiagramPreferenceInitializer { >+ >+ /** >+ * @generated >+ */ >+ protected IPreferenceStore getPreferenceStore() { >+ return org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin.getInstance().getPreferenceStore(); >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/ForkNodeViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/ForkNodeViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/ForkNodeViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/ForkNodeViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class ForkNodeViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.ForkNodeEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/CreateObjectActionNameViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/CreateObjectActionNameViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/CreateObjectActionNameViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/CreateObjectActionNameViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.BasicNodeViewFactory; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class CreateObjectActionNameViewFactory extends BasicNodeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/PinItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/PinItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/PinItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/PinItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class PinItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/AddStructuralFeatureValueActionItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/AddStructuralFeatureValueActionItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/AddStructuralFeatureValueActionItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/AddStructuralFeatureValueActionItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,332 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.AddStructuralFeatureValueAction; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class AddStructuralFeatureValueActionItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCommand(CreateElementRequest req) { >+ if (UMLElementTypes.InputPin_3003 == req.getElementType()) { >+ AddStructuralFeatureValueAction container = (AddStructuralFeatureValueAction) (req.getContainer() instanceof View ? ((View) req.getContainer()).getElement() : req.getContainer()); >+ if (container.getInsertAt() != null) { >+ return super.getCreateCommand(req); >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getAddStructuralFeatureValueAction_InsertAt()); >+ } >+ return getMSLWrapper(new CreateInputPin_3003Command(req)); >+ } >+ if (UMLElementTypes.InputPin_3004 == req.getElementType()) { >+ AddStructuralFeatureValueAction container = (AddStructuralFeatureValueAction) (req.getContainer() instanceof View ? ((View) req.getContainer()).getElement() : req.getContainer()); >+ if (container.getValue() != null) { >+ return super.getCreateCommand(req); >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getWriteStructuralFeatureAction_Value()); >+ } >+ return getMSLWrapper(new CreateInputPin_3004Command(req)); >+ } >+ if (UMLElementTypes.InputPin_3005 == req.getElementType()) { >+ AddStructuralFeatureValueAction container = (AddStructuralFeatureValueAction) (req.getContainer() instanceof View ? ((View) req.getContainer()).getElement() : req.getContainer()); >+ if (container.getObject() != null) { >+ return super.getCreateCommand(req); >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getStructuralFeatureAction_Object()); >+ } >+ return getMSLWrapper(new CreateInputPin_3005Command(req)); >+ } >+ return super.getCreateCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateInputPin_3003Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateInputPin_3003Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getAddStructuralFeatureValueAction(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateInputPin_3004Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateInputPin_3004Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getAddStructuralFeatureValueAction(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateInputPin_3005Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateInputPin_3005Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getAddStructuralFeatureValueAction(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramFileCreator.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramFileCreator.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLDiagramFileCreator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLDiagramFileCreator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,69 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import org.eclipse.core.resources.IWorkspaceRoot; >+import org.eclipse.core.resources.ResourcesPlugin; >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.util.DiagramFileCreator; >+ >+/** >+ * @generated >+ */ >+public class UMLDiagramFileCreator extends DiagramFileCreator { >+ >+ /** >+ * @generated >+ */ >+ private static UMLDiagramFileCreator INSTANCE = new UMLDiagramFileCreator(); >+ >+ /** >+ * @generated >+ */ >+ public static DiagramFileCreator getInstance() { >+ return INSTANCE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getExtension() { >+ return ".umlactivity_diagram"; //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getUniqueFileName(IPath containerPath, String fileName) { >+ int nFileNumber = 1; >+ fileName = removeExtensionFromFileName(fileName); >+ String newFileName = fileName; >+ >+ IPath diagramFilePath = containerPath.append(appendExtensionToFileName(newFileName)); >+ IPath modelFilePath = containerPath.append(appendExtensionToModelFileName(newFileName)); >+ IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); >+ >+ while (workspaceRoot.exists(diagramFilePath) || workspaceRoot.exists(modelFilePath)) { >+ nFileNumber++; >+ newFileName = fileName + nFileNumber; >+ diagramFilePath = containerPath.append(appendExtensionToFileName(newFileName)); >+ modelFilePath = containerPath.append(appendExtensionToModelFileName(newFileName)); >+ } >+ return newFileName; >+ } >+ >+ /** >+ * @generated >+ */ >+ private String removeExtensionFromFileName(String fileName) { >+ if (fileName.endsWith(getExtension())) { >+ return fileName.substring(0, fileName.length() - getExtension().length()); >+ } >+ return fileName; >+ } >+ >+ /** >+ * @generated >+ */ >+ private String appendExtensionToModelFileName(String fileName) { >+ return fileName + ".uml"; //$NON-NLS-1$ >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/CentralBufferNodeEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/CentralBufferNodeEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/CentralBufferNodeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/CentralBufferNodeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,246 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.CentralBufferNodeItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class CentralBufferNodeEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2009; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public CentralBufferNodeEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new CentralBufferNodeItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ CentralBufferFigure figure = new CentralBufferFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public CentralBufferFigure getPrimaryShape() { >+ return (CentralBufferFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class CentralBufferFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public CentralBufferFigure() { >+ >+ org.eclipse.draw2d.BorderLayout myGenLayoutManager = new org.eclipse.draw2d.BorderLayout(); >+ >+ this.setLayoutManager(myGenLayoutManager); >+ >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel(); >+ fig_0.setText("\u00ABcentralBuffer\u00BB"); >+ >+ setFigureCentralBufferFigure_fixed_central(fig_0); >+ >+ Object layData0 = org.eclipse.draw2d.BorderLayout.TOP; >+ >+ this.add(fig_0, layData0); >+ org.eclipse.draw2d.RectangleFigure fig_1 = new org.eclipse.draw2d.RectangleFigure(); >+ fig_1.setFill(false); >+ fig_1.setOutline(false); >+ >+ setFigureCentralBufferFigure_ContentPane(fig_1); >+ >+ Object layData1 = org.eclipse.draw2d.BorderLayout.CENTER; >+ >+ this.add(fig_1, layData1); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fCentralBufferFigure_fixed_central; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureCentralBufferFigure_fixed_central() { >+ return fCentralBufferFigure_fixed_central; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureCentralBufferFigure_fixed_central(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) { >+ fCentralBufferFigure_fixed_central = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.RectangleFigure fCentralBufferFigure_ContentPane; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.draw2d.RectangleFigure getFigureCentralBufferFigure_ContentPane() { >+ return fCentralBufferFigure_ContentPane; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureCentralBufferFigure_ContentPane(org.eclipse.draw2d.RectangleFigure fig) { >+ fCentralBufferFigure_ContentPane = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLDocumentProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLDocumentProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLDocumentProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLDocumentProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,204 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import java.io.IOException; >+import java.util.ArrayList; >+import java.util.Collection; >+import java.util.Collections; >+import java.util.Iterator; >+import java.util.List; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IResource; >+import org.eclipse.core.resources.IStorage; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.SubProgressMonitor; >+import org.eclipse.core.runtime.jobs.ISchedulingRule; >+import org.eclipse.core.runtime.jobs.MultiRule; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.ecore.resource.Resource; >+import org.eclipse.emf.transaction.DemultiplexingListener; >+import org.eclipse.emf.transaction.NotificationFilter; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramDocument; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramModificationListener; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.document.FileDiagramDocumentProvider; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.document.FileDiagramModificationListener; >+import org.eclipse.gmf.runtime.notation.Diagram; >+import org.eclipse.ui.IFileEditorInput; >+ >+/** >+ * @generated >+ */ >+public class UMLDocumentProvider extends FileDiagramDocumentProvider { >+ >+ /** >+ * @generated >+ */ >+ private final String contentObjectURI; >+ >+ /** >+ * @generated >+ */ >+ public UMLDocumentProvider() { >+ this(null); >+ } >+ >+ /** >+ * @generated >+ */ >+ public UMLDocumentProvider(String rootObjectURI) { >+ this.contentObjectURI = rootObjectURI; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setDocumentContentFromStorage(IDocument document, IStorage storage) throws CoreException { >+ super.setDocumentContentFromStorage(document, storage); >+ if (contentObjectURI == null || false == document.getContent() instanceof EObject) { >+ return; >+ } >+ EObject currentContent = (EObject) document.getContent(); >+ if (currentContent.eResource().getURIFragment(currentContent) == contentObjectURI) { >+ return; // already there >+ } >+ EObject anotherContentObject = currentContent.eResource().getEObject(contentObjectURI); >+ document.setContent(anotherContentObject); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void saveDocumentToFile(IDocument document, IFile file, boolean overwrite, IProgressMonitor monitor) throws CoreException { >+ Diagram diagram = (Diagram) document.getContent(); >+ Resource diagramResource = diagram.eResource(); >+ IDiagramDocument diagramDocument = (IDiagramDocument) document; >+ TransactionalEditingDomain domain = diagramDocument.getEditingDomain(); >+ List resources = domain.getResourceSet().getResources(); >+ >+ monitor.beginTask("Saving diagram", resources.size() + 1); //$NON-NLS-1$ >+ super.saveDocumentToFile(document, file, overwrite, new SubProgressMonitor(monitor, 1)); >+ for (Iterator it = resources.iterator(); it.hasNext();) { >+ Resource nextResource = (Resource) it.next(); >+ monitor.setTaskName("Saving " + nextResource.getURI()); //$NON-NLS-1$ >+ if (nextResource != diagramResource && nextResource.isLoaded() && (!nextResource.isTrackingModification() || nextResource.isModified())) { >+ try { >+ nextResource.save(Collections.EMPTY_MAP); >+ } catch (IOException e) { >+ UMLDiagramEditorPlugin.getInstance().logError("Unable to save resource: " + nextResource.getURI(), e); //$NON-NLS-1$ >+ } >+ } >+ monitor.worked(1); >+ } >+ monitor.done(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected ISchedulingRule getSaveRule(Object element) { >+ IDiagramDocument diagramDocument = getDiagramDocument(element); >+ if (diagramDocument != null) { >+ Diagram diagram = diagramDocument.getDiagram(); >+ if (diagram != null) { >+ Collection rules = new ArrayList(); >+ for (Iterator it = diagramDocument.getEditingDomain().getResourceSet().getResources().iterator(); it.hasNext();) { >+ IFile nextFile = WorkspaceSynchronizer.getFile((Resource) it.next()); >+ if (nextFile != null) { >+ rules.add(computeSaveSchedulingRule(nextFile)); >+ } >+ } >+ return new MultiRule((ISchedulingRule[]) rules.toArray(new ISchedulingRule[rules.size()])); >+ } >+ } >+ return super.getSaveRule(element); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected FileInfo createFileInfo(IDocument document, FileSynchronizer synchronizer, IFileEditorInput input) { >+ assert document instanceof DiagramDocument; >+ >+ DiagramModificationListener diagramListener = new CustomModificationListener(this, (DiagramDocument) document, input); >+ DiagramFileInfo info = new DiagramFileInfo(document, synchronizer, diagramListener); >+ >+ diagramListener.startListening(); >+ return info; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ISchedulingRule computeSaveSchedulingRule(IResource toCreateOrModify) { >+ if (toCreateOrModify.exists() && toCreateOrModify.isSynchronized(IResource.DEPTH_ZERO)) >+ return fResourceRuleFactory.modifyRule(toCreateOrModify); >+ >+ IResource parent = toCreateOrModify; >+ do { >+ /* >+ * XXX This is a workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=67601 >+ * IResourceRuleFactory.createRule should iterate the hierarchy itself. >+ */ >+ toCreateOrModify = parent; >+ parent = toCreateOrModify.getParent(); >+ } while (parent != null && !parent.exists() && !parent.isSynchronized(IResource.DEPTH_ZERO)); >+ >+ return fResourceRuleFactory.createRule(toCreateOrModify); >+ } >+ >+ /** >+ * @generated >+ */ >+ private class CustomModificationListener extends FileDiagramModificationListener { >+ >+ /** >+ * @generated >+ */ >+ private DemultiplexingListener myListener = null; >+ >+ /** >+ * @generated >+ */ >+ public CustomModificationListener(UMLDocumentProvider documentProviderParameter, DiagramDocument documentParameter, IFileEditorInput inputParameter) { >+ super(documentProviderParameter, documentParameter, inputParameter); >+ final DiagramDocument document = documentParameter; >+ NotificationFilter diagramResourceModifiedFilter = NotificationFilter.createEventTypeFilter(Notification.SET); >+ myListener = new DemultiplexingListener(diagramResourceModifiedFilter) { >+ >+ protected void handleNotification(TransactionalEditingDomain domain, Notification notification) { >+ if (notification.getNotifier() instanceof EObject) { >+ Resource modifiedResource = ((EObject) notification.getNotifier()).eResource(); >+ if (modifiedResource != document.getDiagram().eResource()) { >+ document.setContent(document.getContent()); >+ } >+ } >+ >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void startListening() { >+ super.startListening(); >+ getEditingDomain().addResourceSetListener(myListener); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void stopListening() { >+ getEditingDomain().removeResourceSetListener(myListener); >+ super.stopListening(); >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLVisualIDRegistry.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLVisualIDRegistry.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLVisualIDRegistry.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLVisualIDRegistry.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,1049 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import org.eclipse.core.runtime.Platform; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gmf.runtime.notation.Diagram; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventAction2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityFinalNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CentralBufferNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ControlFlowEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.DataStoreNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.DecisionNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.FlowFinalNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ForkNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InitialNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin5EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName5EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.JoinNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.MergeNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ObjectFlowEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.PinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.PinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.StructuredActivityNodeEditPart; >+import org.eclipse.uml2.diagram.activity.expressions.UMLAbstractExpression; >+import org.eclipse.uml2.diagram.activity.expressions.UMLOCLFactory; >+import org.eclipse.uml2.uml.AcceptEventAction; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityFinalNode; >+import org.eclipse.uml2.uml.AddStructuralFeatureValueAction; >+import org.eclipse.uml2.uml.CallBehaviorAction; >+import org.eclipse.uml2.uml.CallOperationAction; >+import org.eclipse.uml2.uml.CentralBufferNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.CreateObjectAction; >+import org.eclipse.uml2.uml.DataStoreNode; >+import org.eclipse.uml2.uml.DecisionNode; >+import org.eclipse.uml2.uml.FlowFinalNode; >+import org.eclipse.uml2.uml.ForkNode; >+import org.eclipse.uml2.uml.InitialNode; >+import org.eclipse.uml2.uml.InputPin; >+import org.eclipse.uml2.uml.JoinNode; >+import org.eclipse.uml2.uml.MergeNode; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.OpaqueAction; >+import org.eclipse.uml2.uml.OutputPin; >+import org.eclipse.uml2.uml.Pin; >+import org.eclipse.uml2.uml.StructuredActivityNode; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * This registry is used to determine which type of visual object should be >+ * created for the corresponding Diagram, Node, ChildNode or Link represented >+ * by a domain model object. >+ * >+ * @generated >+ */ >+public class UMLVisualIDRegistry { >+ >+ /** >+ * @generated >+ */ >+ private static final String DEBUG_KEY = UMLDiagramEditorPlugin.getInstance().getBundle().getSymbolicName() + "/debug/visualID"; //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static int getVisualID(View view) { >+ if (view instanceof Diagram) { >+ if (ActivityEditPart.MODEL_ID.equals(view.getType())) { >+ return ActivityEditPart.VISUAL_ID; >+ } else { >+ return -1; >+ } >+ } >+ return getVisualID(view.getType()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static String getModelID(View view) { >+ View diagram = view.getDiagram(); >+ while (view != diagram) { >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return (String) annotation.getDetails().get("modelID"); //$NON-NLS-1$ >+ } >+ view = (View) view.eContainer(); >+ } >+ return diagram != null ? diagram.getType() : null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static int getVisualID(String type) { >+ try { >+ return Integer.parseInt(type); >+ } catch (NumberFormatException e) { >+ if (Boolean.TRUE.toString().equalsIgnoreCase(Platform.getDebugOption(DEBUG_KEY))) { >+ UMLDiagramEditorPlugin.getInstance().logError("Unable to parse view type as a visualID number: " + type); >+ } >+ } >+ return -1; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static String getType(int visualID) { >+ return String.valueOf(visualID); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static int getDiagramVisualID(EObject domainElement) { >+ if (domainElement == null) { >+ return -1; >+ } >+ EClass domainElementMetaclass = domainElement.eClass(); >+ return getDiagramVisualID(domainElement, domainElementMetaclass); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static int getDiagramVisualID(EObject domainElement, EClass domainElementMetaclass) { >+ if (UMLPackage.eINSTANCE.getActivity().isSuperTypeOf(domainElementMetaclass) && isDiagramActivity_1000((Activity) domainElement)) { >+ return ActivityEditPart.VISUAL_ID; >+ } >+ return getUnrecognizedDiagramID(domainElement); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static int getNodeVisualID(View containerView, EObject domainElement) { >+ if (domainElement == null) { >+ return -1; >+ } >+ EClass domainElementMetaclass = domainElement.eClass(); >+ return getNodeVisualID(containerView, domainElement, domainElementMetaclass, null); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static int getNodeVisualID(View containerView, EObject domainElement, EClass domainElementMetaclass, String semanticHint) { >+ String containerModelID = getModelID(containerView); >+ if (!ActivityEditPart.MODEL_ID.equals(containerModelID)) { >+ return -1; >+ } >+ int containerVisualID; >+ if (ActivityEditPart.MODEL_ID.equals(containerModelID)) { >+ containerVisualID = getVisualID(containerView); >+ } else { >+ if (containerView instanceof Diagram) { >+ containerVisualID = ActivityEditPart.VISUAL_ID; >+ } else { >+ return -1; >+ } >+ } >+ int nodeVisualID = semanticHint != null ? getVisualID(semanticHint) : -1; >+ switch (containerVisualID) { >+ case AcceptEventActionEditPart.VISUAL_ID: >+ return getUnrecognizedAcceptEventAction_2001ChildNodeID(domainElement, semanticHint); >+ case AcceptEventAction2EditPart.VISUAL_ID: >+ return getUnrecognizedAcceptEventAction_2002ChildNodeID(domainElement, semanticHint); >+ case ActivityFinalNodeEditPart.VISUAL_ID: >+ return getUnrecognizedActivityFinalNode_2003ChildNodeID(domainElement, semanticHint); >+ case DecisionNodeEditPart.VISUAL_ID: >+ return getUnrecognizedDecisionNode_2004ChildNodeID(domainElement, semanticHint); >+ case MergeNodeEditPart.VISUAL_ID: >+ return getUnrecognizedMergeNode_2005ChildNodeID(domainElement, semanticHint); >+ case InitialNodeEditPart.VISUAL_ID: >+ return getUnrecognizedInitialNode_2006ChildNodeID(domainElement, semanticHint); >+ case StructuredActivityNodeEditPart.VISUAL_ID: >+ return getUnrecognizedStructuredActivityNode_2007ChildNodeID(domainElement, semanticHint); >+ case DataStoreNodeEditPart.VISUAL_ID: >+ return getUnrecognizedDataStoreNode_2008ChildNodeID(domainElement, semanticHint); >+ case CentralBufferNodeEditPart.VISUAL_ID: >+ return getUnrecognizedCentralBufferNode_2009ChildNodeID(domainElement, semanticHint); >+ case OpaqueActionEditPart.VISUAL_ID: >+ if (OpaqueActionNameEditPart.VISUAL_ID == nodeVisualID) { >+ return OpaqueActionNameEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || OutputPinEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getOutputPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeOutputPin_3001((OutputPin) domainElement))) { >+ return OutputPinEditPart.VISUAL_ID; >+ } >+ return getUnrecognizedOpaqueAction_2010ChildNodeID(domainElement, semanticHint); >+ case FlowFinalNodeEditPart.VISUAL_ID: >+ return getUnrecognizedFlowFinalNode_2011ChildNodeID(domainElement, semanticHint); >+ case ForkNodeEditPart.VISUAL_ID: >+ return getUnrecognizedForkNode_2012ChildNodeID(domainElement, semanticHint); >+ case JoinNodeEditPart.VISUAL_ID: >+ return getUnrecognizedJoinNode_2013ChildNodeID(domainElement, semanticHint); >+ case PinEditPart.VISUAL_ID: >+ if (PinNameEditPart.VISUAL_ID == nodeVisualID) { >+ return PinNameEditPart.VISUAL_ID; >+ } >+ return getUnrecognizedPin_2014ChildNodeID(domainElement, semanticHint); >+ case CreateObjectActionEditPart.VISUAL_ID: >+ if (CreateObjectActionNameEditPart.VISUAL_ID == nodeVisualID) { >+ return CreateObjectActionNameEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || OutputPin2EditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getOutputPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeOutputPin_3002((OutputPin) domainElement))) { >+ return OutputPin2EditPart.VISUAL_ID; >+ } >+ return getUnrecognizedCreateObjectAction_2015ChildNodeID(domainElement, semanticHint); >+ case AddStructuralFeatureValueActionEditPart.VISUAL_ID: >+ if (AddStructuralFeatureValueActionNameEditPart.VISUAL_ID == nodeVisualID) { >+ return AddStructuralFeatureValueActionNameEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || InputPinEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getInputPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeInputPin_3003((InputPin) domainElement))) { >+ return InputPinEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || InputPin2EditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getInputPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeInputPin_3004((InputPin) domainElement))) { >+ return InputPin2EditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || InputPin3EditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getInputPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeInputPin_3005((InputPin) domainElement))) { >+ return InputPin3EditPart.VISUAL_ID; >+ } >+ return getUnrecognizedAddStructuralFeatureValueAction_2016ChildNodeID(domainElement, semanticHint); >+ case CallBehaviorActionEditPart.VISUAL_ID: >+ if (CallBehaviorActionNameEditPart.VISUAL_ID == nodeVisualID) { >+ return CallBehaviorActionNameEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || OutputPin3EditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getOutputPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeOutputPin_3006((OutputPin) domainElement))) { >+ return OutputPin3EditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || InputPin4EditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getInputPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeInputPin_3007((InputPin) domainElement))) { >+ return InputPin4EditPart.VISUAL_ID; >+ } >+ return getUnrecognizedCallBehaviorAction_2017ChildNodeID(domainElement, semanticHint); >+ case CallOperationActionEditPart.VISUAL_ID: >+ if (CallOperationActionNameEditPart.VISUAL_ID == nodeVisualID) { >+ return CallOperationActionNameEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || OutputPin3EditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getOutputPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeOutputPin_3006((OutputPin) domainElement))) { >+ return OutputPin3EditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || InputPin4EditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getInputPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeInputPin_3007((InputPin) domainElement))) { >+ return InputPin4EditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || InputPin5EditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getInputPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeInputPin_3008((InputPin) domainElement))) { >+ return InputPin5EditPart.VISUAL_ID; >+ } >+ return getUnrecognizedCallOperationAction_2018ChildNodeID(domainElement, semanticHint); >+ case OutputPinEditPart.VISUAL_ID: >+ if (OutputPinNameEditPart.VISUAL_ID == nodeVisualID) { >+ return OutputPinNameEditPart.VISUAL_ID; >+ } >+ return getUnrecognizedOutputPin_3001ChildNodeID(domainElement, semanticHint); >+ case OutputPin2EditPart.VISUAL_ID: >+ if (OutputPinName2EditPart.VISUAL_ID == nodeVisualID) { >+ return OutputPinName2EditPart.VISUAL_ID; >+ } >+ return getUnrecognizedOutputPin_3002ChildNodeID(domainElement, semanticHint); >+ case InputPinEditPart.VISUAL_ID: >+ if (InputPinNameEditPart.VISUAL_ID == nodeVisualID) { >+ return InputPinNameEditPart.VISUAL_ID; >+ } >+ return getUnrecognizedInputPin_3003ChildNodeID(domainElement, semanticHint); >+ case InputPin2EditPart.VISUAL_ID: >+ if (InputPinName2EditPart.VISUAL_ID == nodeVisualID) { >+ return InputPinName2EditPart.VISUAL_ID; >+ } >+ return getUnrecognizedInputPin_3004ChildNodeID(domainElement, semanticHint); >+ case InputPin3EditPart.VISUAL_ID: >+ if (InputPinName3EditPart.VISUAL_ID == nodeVisualID) { >+ return InputPinName3EditPart.VISUAL_ID; >+ } >+ return getUnrecognizedInputPin_3005ChildNodeID(domainElement, semanticHint); >+ case OutputPin3EditPart.VISUAL_ID: >+ if (OutputPinName3EditPart.VISUAL_ID == nodeVisualID) { >+ return OutputPinName3EditPart.VISUAL_ID; >+ } >+ return getUnrecognizedOutputPin_3006ChildNodeID(domainElement, semanticHint); >+ case InputPin4EditPart.VISUAL_ID: >+ if (InputPinName4EditPart.VISUAL_ID == nodeVisualID) { >+ return InputPinName4EditPart.VISUAL_ID; >+ } >+ return getUnrecognizedInputPin_3007ChildNodeID(domainElement, semanticHint); >+ case InputPin5EditPart.VISUAL_ID: >+ if (InputPinName5EditPart.VISUAL_ID == nodeVisualID) { >+ return InputPinName5EditPart.VISUAL_ID; >+ } >+ return getUnrecognizedInputPin_3008ChildNodeID(domainElement, semanticHint); >+ case ActivityEditPart.VISUAL_ID: >+ if ((semanticHint == null || AcceptEventActionEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getAcceptEventAction().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeAcceptEventAction_2001((AcceptEventAction) domainElement))) { >+ return AcceptEventActionEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || AcceptEventAction2EditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getAcceptEventAction().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeAcceptEventAction_2002((AcceptEventAction) domainElement))) { >+ return AcceptEventAction2EditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || ActivityFinalNodeEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getActivityFinalNode().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeActivityFinalNode_2003((ActivityFinalNode) domainElement))) { >+ return ActivityFinalNodeEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || DecisionNodeEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getDecisionNode().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeDecisionNode_2004((DecisionNode) domainElement))) { >+ return DecisionNodeEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || MergeNodeEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getMergeNode().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeMergeNode_2005((MergeNode) domainElement))) { >+ return MergeNodeEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || InitialNodeEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getInitialNode().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeInitialNode_2006((InitialNode) domainElement))) { >+ return InitialNodeEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || StructuredActivityNodeEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getStructuredActivityNode().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeStructuredActivityNode_2007((StructuredActivityNode) domainElement))) { >+ return StructuredActivityNodeEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || DataStoreNodeEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getDataStoreNode().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeDataStoreNode_2008((DataStoreNode) domainElement))) { >+ return DataStoreNodeEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || CentralBufferNodeEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getCentralBufferNode().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeCentralBufferNode_2009((CentralBufferNode) domainElement))) { >+ return CentralBufferNodeEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || OpaqueActionEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getOpaqueAction().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeOpaqueAction_2010((OpaqueAction) domainElement))) { >+ return OpaqueActionEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || FlowFinalNodeEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getFlowFinalNode().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeFlowFinalNode_2011((FlowFinalNode) domainElement))) { >+ return FlowFinalNodeEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || ForkNodeEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getForkNode().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeForkNode_2012((ForkNode) domainElement))) { >+ return ForkNodeEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || JoinNodeEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getJoinNode().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeJoinNode_2013((JoinNode) domainElement))) { >+ return JoinNodeEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || PinEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getPin().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodePin_2014((Pin) domainElement))) { >+ return PinEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || CreateObjectActionEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getCreateObjectAction().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeCreateObjectAction_2015((CreateObjectAction) domainElement))) { >+ return CreateObjectActionEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || AddStructuralFeatureValueActionEditPart.VISUAL_ID == nodeVisualID) >+ && UMLPackage.eINSTANCE.getAddStructuralFeatureValueAction().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeAddStructuralFeatureValueAction_2016((AddStructuralFeatureValueAction) domainElement))) { >+ return AddStructuralFeatureValueActionEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || CallBehaviorActionEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getCallBehaviorAction().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeCallBehaviorAction_2017((CallBehaviorAction) domainElement))) { >+ return CallBehaviorActionEditPart.VISUAL_ID; >+ } >+ if ((semanticHint == null || CallOperationActionEditPart.VISUAL_ID == nodeVisualID) && UMLPackage.eINSTANCE.getCallOperationAction().isSuperTypeOf(domainElementMetaclass) >+ && (domainElement == null || isNodeCallOperationAction_2018((CallOperationAction) domainElement))) { >+ return CallOperationActionEditPart.VISUAL_ID; >+ } >+ return getUnrecognizedActivity_1000ChildNodeID(domainElement, semanticHint); >+ } >+ return -1; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static int getLinkWithClassVisualID(EObject domainElement) { >+ if (domainElement == null) { >+ return -1; >+ } >+ EClass domainElementMetaclass = domainElement.eClass(); >+ return getLinkWithClassVisualID(domainElement, domainElementMetaclass); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static int getLinkWithClassVisualID(EObject domainElement, EClass domainElementMetaclass) { >+ if (UMLPackage.eINSTANCE.getControlFlow().isSuperTypeOf(domainElementMetaclass) && (domainElement == null || isLinkWithClassControlFlow_4001((ControlFlow) domainElement))) { >+ return ControlFlowEditPart.VISUAL_ID; >+ } else if (UMLPackage.eINSTANCE.getObjectFlow().isSuperTypeOf(domainElementMetaclass) && (domainElement == null || isLinkWithClassObjectFlow_4002((ObjectFlow) domainElement))) { >+ return ObjectFlowEditPart.VISUAL_ID; >+ } else { >+ return getUnrecognizedLinkWithClassID(domainElement); >+ } >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isDiagramActivity_1000(Activity element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedDiagramID(EObject domainElement) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeAcceptEventAction_2001(AcceptEventAction element) { >+ return AcceptEventAction_2001.matches(element); >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeAcceptEventAction_2002(AcceptEventAction element) { >+ return AcceptEventAction_2002.matches(element); >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeActivityFinalNode_2003(ActivityFinalNode element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeDecisionNode_2004(DecisionNode element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeMergeNode_2005(MergeNode element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeInitialNode_2006(InitialNode element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeStructuredActivityNode_2007(StructuredActivityNode element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeDataStoreNode_2008(DataStoreNode element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeCentralBufferNode_2009(CentralBufferNode element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeOpaqueAction_2010(OpaqueAction element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeFlowFinalNode_2011(FlowFinalNode element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeForkNode_2012(ForkNode element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeJoinNode_2013(JoinNode element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodePin_2014(Pin element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeCreateObjectAction_2015(CreateObjectAction element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeAddStructuralFeatureValueAction_2016(AddStructuralFeatureValueAction element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeCallBehaviorAction_2017(CallBehaviorAction element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeCallOperationAction_2018(CallOperationAction element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeOutputPin_3001(OutputPin element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeOutputPin_3002(OutputPin element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeInputPin_3003(InputPin element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeInputPin_3004(InputPin element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeInputPin_3005(InputPin element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeOutputPin_3006(OutputPin element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeInputPin_3007(InputPin element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isNodeInputPin_3008(InputPin element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedAcceptEventAction_2001ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedAcceptEventAction_2002ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedActivityFinalNode_2003ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedDecisionNode_2004ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedMergeNode_2005ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedInitialNode_2006ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedStructuredActivityNode_2007ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedDataStoreNode_2008ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedCentralBufferNode_2009ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedOpaqueAction_2010ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedFlowFinalNode_2011ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedForkNode_2012ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedJoinNode_2013ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedPin_2014ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedCreateObjectAction_2015ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedAddStructuralFeatureValueAction_2016ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedCallBehaviorAction_2017ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedCallOperationAction_2018ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedOutputPin_3001ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedOutputPin_3002ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedInputPin_3003ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedInputPin_3004ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedInputPin_3005ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedOutputPin_3006ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedInputPin_3007ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedInputPin_3008ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedActivity_1000ChildNodeID(EObject domainElement, String semanticHint) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private static int getUnrecognizedLinkWithClassID(EObject domainElement) { >+ return -1; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isLinkWithClassControlFlow_4001(ControlFlow element) { >+ return true; >+ } >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private static boolean isLinkWithClassObjectFlow_4002(ObjectFlow element) { >+ return true; >+ } >+ >+ /** >+ * @generated >+ */ >+ private static final Matcher AcceptEventAction_2001 = new Matcher(UMLOCLFactory.getExpression("self.trigger->isEmpty() or (not self.trigger->forAll(tr | tr.event.oclIsKindOf(uml::TimeEvent)))", //$NON-NLS-1$ >+ UMLPackage.eINSTANCE.getAcceptEventAction())); >+ >+ /** >+ * @generated >+ */ >+ private static final Matcher AcceptEventAction_2002 = new Matcher(UMLOCLFactory.getExpression( >+ "(not self.trigger->isEmpty()) and (self.trigger->forAll(tr | tr.event.oclIsKindOf(uml::TimeEvent)))", //$NON-NLS-1$ >+ UMLPackage.eINSTANCE.getAcceptEventAction())); >+ >+ /** >+ * @generated >+ */ >+ static class Matcher { >+ >+ /** >+ * @generated >+ */ >+ private UMLAbstractExpression condition; >+ >+ /** >+ * @generated >+ */ >+ Matcher(UMLAbstractExpression conditionExpression) { >+ this.condition = conditionExpression; >+ } >+ >+ /** >+ * @generated >+ */ >+ boolean matches(EObject object) { >+ Object result = condition.evaluate(object); >+ return result instanceof Boolean && ((Boolean) result).booleanValue(); >+ } >+ }// Matcher >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditorPlugin.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditorPlugin.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditorPlugin.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditorPlugin.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,219 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Path; >+import org.eclipse.core.runtime.Status; >+import org.eclipse.emf.common.notify.AdapterFactory; >+import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory; >+import org.eclipse.emf.edit.provider.ComposedAdapterFactory; >+import org.eclipse.emf.edit.provider.IItemLabelProvider; >+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; >+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; >+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; >+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; >+import org.eclipse.jface.resource.ImageDescriptor; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.ui.plugin.AbstractUIPlugin; >+import org.eclipse.uml2.uml.edit.providers.UMLItemProviderAdapterFactory; >+import org.osgi.framework.BundleContext; >+ >+/** >+ * @generated >+ */ >+public class UMLDiagramEditorPlugin extends AbstractUIPlugin { >+ >+ /** >+ * @generated >+ */ >+ public static final String ID = "org.eclipse.uml2.diagram.activity"; //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public static final PreferencesHint DIAGRAM_PREFERENCES_HINT = new PreferencesHint(ID); >+ >+ /** >+ * @generated >+ */ >+ private static UMLDiagramEditorPlugin instance; >+ >+ /** >+ * @generated >+ */ >+ private ComposedAdapterFactory adapterFactory; >+ >+ /** >+ * @generated >+ */ >+ public UMLDiagramEditorPlugin() { >+ } >+ >+ /** >+ * @generated >+ */ >+ public void start(BundleContext context) throws Exception { >+ super.start(context); >+ instance = this; >+ PreferencesHint.registerPreferenceStore(DIAGRAM_PREFERENCES_HINT, getPreferenceStore()); >+ adapterFactory = createAdapterFactory(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void stop(BundleContext context) throws Exception { >+ adapterFactory.dispose(); >+ adapterFactory = null; >+ instance = null; >+ super.stop(context); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static UMLDiagramEditorPlugin getInstance() { >+ return instance; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected ComposedAdapterFactory createAdapterFactory() { >+ List factories = new ArrayList(); >+ fillItemProviderFactories(factories); >+ return new ComposedAdapterFactory(factories); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void fillItemProviderFactories(List factories) { >+ factories.add(new UMLItemProviderAdapterFactory()); >+ factories.add(new EcoreItemProviderAdapterFactory()); >+ factories.add(new ResourceItemProviderAdapterFactory()); >+ factories.add(new ReflectiveItemProviderAdapterFactory()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public AdapterFactory getItemProvidersAdapterFactory() { >+ return adapterFactory; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ImageDescriptor getItemImageDescriptor(Object item) { >+ IItemLabelProvider labelProvider = (IItemLabelProvider) adapterFactory.adapt(item, IItemLabelProvider.class); >+ if (labelProvider != null) { >+ return ExtendedImageRegistry.getInstance().getImageDescriptor(labelProvider.getImage(item)); >+ } >+ return null; >+ } >+ >+ /** >+ * Returns an image descriptor for the image file at the given >+ * plug-in relative path. >+ * >+ * @generated >+ * @param path the path >+ * @return the image descriptor >+ */ >+ public static ImageDescriptor getBundledImageDescriptor(String path) { >+ return AbstractUIPlugin.imageDescriptorFromPlugin(ID, path); >+ } >+ >+ /** >+ * Respects images residing in any plug-in. If path is relative, >+ * then this bundle is looked up for the image, otherwise, for absolute >+ * path, first segment is taken as id of plug-in with image >+ * >+ * @generated >+ * @param path the path to image, either absolute (with plug-in id as first segment), or relative for bundled images >+ * @return the image descriptor >+ */ >+ public static ImageDescriptor findImageDescriptor(String path) { >+ final IPath p = new Path(path); >+ if (p.isAbsolute() && p.segmentCount() > 1) { >+ return AbstractUIPlugin.imageDescriptorFromPlugin(p.segment(0), p.removeFirstSegments(1).makeAbsolute().toString()); >+ } else { >+ return getBundledImageDescriptor(p.makeAbsolute().toString()); >+ } >+ } >+ >+ /** >+ * Returns an image for the image file at the given plug-in relative path. >+ * Client do not need to dispose this image. Images will be disposed automatically. >+ * >+ * @generated >+ * @param path the path >+ * @return image instance >+ */ >+ public Image getBundledImage(String path) { >+ Image image = getImageRegistry().get(path); >+ if (image == null) { >+ getImageRegistry().put(path, getBundledImageDescriptor(path)); >+ image = getImageRegistry().get(path); >+ } >+ return image; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void logError(String error) { >+ logError(error, null); >+ } >+ >+ /** >+ * @param throwable actual error or null could be passed >+ * @generated >+ */ >+ public void logError(String error, Throwable throwable) { >+ if (error == null && throwable != null) { >+ error = throwable.getMessage(); >+ } >+ getLog().log(new Status(IStatus.ERROR, UMLDiagramEditorPlugin.ID, IStatus.OK, error, throwable)); >+ debug(error, throwable); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void logInfo(String message) { >+ logInfo(message, null); >+ } >+ >+ /** >+ * @param throwable actual error or null could be passed >+ * @generated >+ */ >+ public void logInfo(String message, Throwable throwable) { >+ if (message == null && throwable != null) { >+ message = throwable.getMessage(); >+ } >+ getLog().log(new Status(IStatus.INFO, UMLDiagramEditorPlugin.ID, IStatus.OK, message, throwable)); >+ debug(message, throwable); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void debug(String message, Throwable throwable) { >+ if (!isDebugging()) { >+ return; >+ } >+ if (message != null) { >+ System.err.println(message); >+ } >+ if (throwable != null) { >+ throwable.printStackTrace(); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLCreationWizard.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLCreationWizard.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLCreationWizard.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLCreationWizard.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,129 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import java.lang.reflect.InvocationTargetException; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.emf.common.util.URI; >+import org.eclipse.jface.dialogs.ErrorDialog; >+import org.eclipse.jface.operation.IRunnableWithProgress; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.jface.wizard.Wizard; >+import org.eclipse.ui.INewWizard; >+import org.eclipse.ui.IWorkbench; >+import org.eclipse.ui.actions.WorkspaceModifyOperation; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+ >+/** >+ * @generated >+ */ >+public class UMLCreationWizard extends Wizard implements INewWizard { >+ >+ /** >+ * @generated >+ */ >+ private IWorkbench workbench; >+ >+ /** >+ * @generated >+ */ >+ protected IStructuredSelection selection; >+ >+ /** >+ * @generated >+ */ >+ protected UMLCreationWizardPage page; >+ >+ /** >+ * @generated >+ */ >+ protected URI diagramURI; >+ >+ /** >+ * @generated >+ */ >+ private boolean openNewlyCreatedDiagramEditor = true; >+ >+ /** >+ * @generated >+ */ >+ public IWorkbench getWorkbench() { >+ return workbench; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IStructuredSelection getSelection() { >+ return selection; >+ } >+ >+ /** >+ * @generated >+ */ >+ public final URI getDiagramURI() { >+ return diagramURI; >+ } >+ >+ /** >+ * @generated >+ */ >+ public final boolean isOpenNewlyCreatedDiagramEditor() { >+ return openNewlyCreatedDiagramEditor; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setOpenNewlyCreatedDiagramEditor(boolean openNewlyCreatedDiagramEditor) { >+ this.openNewlyCreatedDiagramEditor = openNewlyCreatedDiagramEditor; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void init(IWorkbench workbench, IStructuredSelection selection) { >+ this.workbench = workbench; >+ this.selection = selection; >+ setWindowTitle("New UMLActivity Diagram"); >+ setDefaultPageImageDescriptor(UMLDiagramEditorPlugin.getBundledImageDescriptor("icons/wizban/NewUMLWizard.gif")); //$NON-NLS-1$ >+ setNeedsProgressMonitor(true); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void addPages() { >+ page = new UMLCreationWizardPage("CreationWizardPage", getSelection()); //$NON-NLS-1$ >+ page.setTitle("Create UMLActivity Diagram"); >+ page.setDescription("Create a new UMLActivity diagram."); >+ addPage(page); >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean performFinish() { >+ IRunnableWithProgress op = new WorkspaceModifyOperation(null) { >+ >+ protected void execute(IProgressMonitor monitor) throws CoreException, InterruptedException { >+ diagramURI = UMLDiagramEditorUtil.createAndOpenDiagram(page.getContainerFullPath(), page.getFileName(), getWorkbench().getActiveWorkbenchWindow(), monitor, >+ isOpenNewlyCreatedDiagramEditor(), true); >+ } >+ }; >+ try { >+ getContainer().run(false, true, op); >+ } catch (InterruptedException e) { >+ return false; >+ } catch (InvocationTargetException e) { >+ if (e.getTargetException() instanceof CoreException) { >+ ErrorDialog.openError(getContainer().getShell(), "Creation Problems", null, ((CoreException) e.getTargetException()).getStatus()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Error creating diagram", e.getTargetException()); //$NON-NLS-1$ >+ } >+ return false; >+ } >+ return diagramURI != null; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/AcceptEventActionEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/AcceptEventActionEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/AcceptEventActionEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/AcceptEventActionEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class AcceptEventActionEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPin3ItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPin3ItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPin3ItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPin3ItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class OutputPin3ItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/ObjectFlowViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/ObjectFlowViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/ObjectFlowViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/ObjectFlowViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,47 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.ConnectionViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class ObjectFlowViewFactory extends ConnectionViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createRoutingStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.ObjectFlowEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/sheet/UMLSheetLabelProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/sheet/UMLSheetLabelProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/sheet/UMLSheetLabelProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/sheet/UMLSheetLabelProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,78 @@ >+package org.eclipse.uml2.diagram.activity.sheet; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.viewers.DecoratingLabelProvider; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.navigator.UMLNavigatorGroup; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin; >+ >+/** >+ * @generated >+ */ >+public class UMLSheetLabelProvider extends DecoratingLabelProvider { >+ >+ /** >+ * @generated >+ */ >+ public UMLSheetLabelProvider() { >+ super(new AdapterFactoryLabelProvider(UMLDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory()), null); >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getText(Object element) { >+ Object selected = unwrap(element); >+ if (selected instanceof UMLNavigatorGroup) { >+ return ((UMLNavigatorGroup) selected).getGroupName(); >+ } >+ return super.getText(selected); >+ } >+ >+ /** >+ * @generated >+ */ >+ public Image getImage(Object element) { >+ return super.getImage(unwrap(element)); >+ } >+ >+ /** >+ * @generated >+ */ >+ private Object unwrap(Object element) { >+ if (element instanceof IStructuredSelection) { >+ return unwrap(((IStructuredSelection) element).getFirstElement()); >+ } >+ if (element instanceof EditPart) { >+ return unwrapEditPart((EditPart) element); >+ } >+ if (element instanceof IAdaptable) { >+ View view = (View) ((IAdaptable) element).getAdapter(View.class); >+ if (view != null) { >+ return unwrapView(view); >+ } >+ } >+ return element; >+ } >+ >+ /** >+ * @generated >+ */ >+ private Object unwrapEditPart(EditPart p) { >+ if (p.getModel() instanceof View) { >+ return unwrapView((View) p.getModel()); >+ } >+ return p.getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private Object unwrapView(View view) { >+ return view.getElement() == null ? view : view.getElement(); >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/CallOperationActionViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/CallOperationActionViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/CallOperationActionViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/CallOperationActionViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class CallOperationActionViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(CallOperationActionNameEditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName5EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName5EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName5EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName5EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,524 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class InputPinName5EditPart extends UMLExtNodeLabelEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5013; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ static { >+ registerSnapBackPosition(UMLVisualIDRegistry.getType(InputPinName5EditPart.VISUAL_ID), new Point(0, 0)); >+ } >+ >+ /** >+ * @generated >+ */ >+ public InputPinName5EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(IFigure figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.InputPin_3008; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ IFigure label = createFigurePrim(); >+ defaultText = getLabelTextHelper(label); >+ return label; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigurePrim() { >+ return new WrapLabel(); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/JoinNodeEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/JoinNodeEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/JoinNodeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/JoinNodeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,206 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.JoinNodeItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class JoinNodeEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2013; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public JoinNodeEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new JoinNodeItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ VerticalForkJoinFigure figure = new VerticalForkJoinFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public VerticalForkJoinFigure getPrimaryShape() { >+ return (VerticalForkJoinFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(4), getMapMode().DPtoLP(50)); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NORTH | PositionConstants.SOUTH); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class VerticalForkJoinFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public VerticalForkJoinFigure() { >+ >+ this.setBackgroundColor(org.eclipse.draw2d.ColorConstants.black); >+ this.setPreferredSize(getMapMode().DPtoLP(4), getMapMode().DPtoLP(50)); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(4), getMapMode().DPtoLP(50))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPin2EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPin2EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPin2EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPin2EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,304 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Iterator; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editparts.LayerManager; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.OutputPin2ItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLExtNodeLabelHostLayoutEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class OutputPin2EditPart extends AbstractBorderItemEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 3002; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public OutputPin2EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy()); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new OutputPin2ItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected void decorateChild(EditPart child) { >+ if (isExternalLabel(child)) { >+ return; >+ } >+ super.decorateChild(child); >+ } >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ UMLExtNodeLabelHostLayoutEditPolicy xlep = new UMLExtNodeLabelHostLayoutEditPolicy() { >+ >+ protected boolean isExternalLabel(EditPart editPart) { >+ return OutputPin2EditPart.this.isExternalLabel(editPart); >+ } >+ }; >+ xlep.setRealLayoutEditPolicy(lep); >+ return xlep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ SmallSquareFigure figure = new SmallSquareFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure getPrimaryShape() { >+ return (SmallSquareFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (isExternalLabel(editPart)) { >+ return getExternalLabelsContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ //FIXME: workaround for #154536 >+ result.getBounds().setSize(result.getPreferredSize()); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(OutputPinName2EditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isExternalLabel(EditPart childEditPart) { >+ if (childEditPart instanceof OutputPinName2EditPart) { >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getExternalLabelsContainer() { >+ LayerManager root = (LayerManager) getRoot(); >+ return root.getLayer(UMLEditPartFactory.EXTERNAL_NODE_LABELS_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().add(labelFigure); >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void removeNotify() { >+ for (Iterator it = getChildren().iterator(); it.hasNext();) { >+ EditPart childEditPart = (EditPart) it.next(); >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ } >+ } >+ super.removeNotify(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class SmallSquareFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure() { >+ >+ this.setPreferredSize(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLInitDiagramFileAction.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLInitDiagramFileAction.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLInitDiagramFileAction.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLInitDiagramFileAction.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,98 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.emf.common.util.URI; >+import org.eclipse.emf.common.util.WrappedException; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.ecore.resource.Resource; >+import org.eclipse.emf.ecore.resource.ResourceSet; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory; >+import org.eclipse.jface.action.IAction; >+import org.eclipse.jface.dialogs.IDialogSettings; >+import org.eclipse.jface.dialogs.MessageDialog; >+import org.eclipse.jface.viewers.ISelection; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.jface.viewers.StructuredSelection; >+import org.eclipse.jface.wizard.Wizard; >+import org.eclipse.jface.wizard.WizardDialog; >+import org.eclipse.ui.IObjectActionDelegate; >+import org.eclipse.ui.IWorkbenchPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+ >+/** >+ * @generated >+ */ >+public class UMLInitDiagramFileAction implements IObjectActionDelegate { >+ >+ /** >+ * @generated >+ */ >+ private IWorkbenchPart myPart; >+ >+ /** >+ * @generated >+ */ >+ private IFile mySelectedModelFile; >+ >+ /** >+ * @generated >+ */ >+ private IStructuredSelection mySelection; >+ >+ /** >+ * @generated >+ */ >+ public void setActivePart(IAction action, IWorkbenchPart targetPart) { >+ myPart = targetPart; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void selectionChanged(IAction action, ISelection selection) { >+ mySelectedModelFile = null; >+ mySelection = StructuredSelection.EMPTY; >+ action.setEnabled(false); >+ if (selection instanceof IStructuredSelection == false || selection.isEmpty()) { >+ return; >+ } >+ mySelection = (IStructuredSelection) selection; >+ mySelectedModelFile = (IFile) ((IStructuredSelection) selection).getFirstElement(); >+ action.setEnabled(true); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void run(IAction action) { >+ TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain(); >+ ResourceSet resourceSet = editingDomain.getResourceSet(); >+ EObject diagramRoot = null; >+ try { >+ Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(mySelectedModelFile.getFullPath().toString()), true); >+ diagramRoot = (EObject) resource.getContents().get(0); >+ } catch (WrappedException ex) { >+ UMLDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + mySelectedModelFile.getFullPath().toString(), ex); //$NON-NLS-1$ >+ } >+ if (diagramRoot == null) { >+ MessageDialog.openError(myPart.getSite().getShell(), "Error", "Model file loading failed"); >+ return; >+ } >+ Wizard wizard = new UMLNewDiagramFileWizard(mySelectedModelFile, myPart.getSite().getPage(), mySelection, diagramRoot, editingDomain); >+ IDialogSettings pluginDialogSettings = UMLDiagramEditorPlugin.getInstance().getDialogSettings(); >+ IDialogSettings initDiagramFileSettings = pluginDialogSettings.getSection("InisDiagramFile"); //$NON-NLS-1$ >+ if (initDiagramFileSettings == null) { >+ initDiagramFileSettings = pluginDialogSettings.addNewSection("InisDiagramFile"); //$NON-NLS-1$ >+ } >+ wizard.setDialogSettings(initDiagramFileSettings); >+ wizard.setForcePreviousAndNextButtons(false); >+ wizard.setWindowTitle("Initialize new " + ActivityEditPart.MODEL_ID + " diagram file"); >+ >+ WizardDialog dialog = new WizardDialog(myPart.getSite().getShell(), wizard); >+ dialog.create(); >+ dialog.getShell().setSize(Math.max(500, dialog.getShell().getSize().x), 500); >+ dialog.open(); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/providers/UMLEditPartProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/providers/UMLEditPartProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/providers/UMLEditPartProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/providers/UMLEditPartProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,141 @@ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import java.lang.ref.WeakReference; >+ >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPartFactory; >+import org.eclipse.gmf.runtime.common.core.service.IOperation; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.services.editpart.AbstractEditPartProvider; >+import org.eclipse.gmf.runtime.diagram.ui.services.editpart.CreateGraphicEditPartOperation; >+import org.eclipse.gmf.runtime.diagram.ui.services.editpart.IEditPartOperation; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.UMLEditPartFactory; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class UMLEditPartProvider extends AbstractEditPartProvider { >+ >+ /** >+ * @generated >+ */ >+ private EditPartFactory factory; >+ >+ /** >+ * @generated >+ */ >+ private boolean allowCaching; >+ >+ /** >+ * @generated >+ */ >+ private WeakReference cachedPart; >+ >+ /** >+ * @generated >+ */ >+ private WeakReference cachedView; >+ >+ /** >+ * @generated >+ */ >+ public UMLEditPartProvider() { >+ setFactory(new UMLEditPartFactory()); >+ setAllowCaching(true); >+ } >+ >+ /** >+ * @generated >+ */ >+ public final EditPartFactory getFactory() { >+ return factory; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFactory(EditPartFactory factory) { >+ this.factory = factory; >+ } >+ >+ /** >+ * @generated >+ */ >+ public final boolean isAllowCaching() { >+ return allowCaching; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected synchronized void setAllowCaching(boolean allowCaching) { >+ this.allowCaching = allowCaching; >+ if (!allowCaching) { >+ cachedPart = null; >+ cachedView = null; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IGraphicalEditPart createEditPart(View view) { >+ EditPart part = factory.createEditPart(null, view); >+ if (part instanceof IGraphicalEditPart) { >+ return (IGraphicalEditPart) part; >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IGraphicalEditPart getCachedPart(View view) { >+ if (cachedView != null && cachedView.get() == view) { >+ return (IGraphicalEditPart) cachedPart.get(); >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public synchronized IGraphicalEditPart createGraphicEditPart(View view) { >+ if (isAllowCaching()) { >+ IGraphicalEditPart part = getCachedPart(view); >+ cachedPart = null; >+ cachedView = null; >+ if (part != null) { >+ return part; >+ } >+ } >+ return createEditPart(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ public synchronized boolean provides(IOperation operation) { >+ if (operation instanceof CreateGraphicEditPartOperation) { >+ View view = ((IEditPartOperation) operation).getView(); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(view))) { >+ return false; >+ } >+ if (isAllowCaching() && getCachedPart(view) != null) { >+ return true; >+ } >+ IGraphicalEditPart part = createEditPart(view); >+ if (part != null) { >+ if (isAllowCaching()) { >+ cachedPart = new WeakReference(part); >+ cachedView = new WeakReference(view); >+ } >+ return true; >+ } >+ } >+ return false; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/DecisionNodeEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/DecisionNodeEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/DecisionNodeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/DecisionNodeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,252 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.DecisionNodeItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class DecisionNodeEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2004; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public DecisionNodeEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new DecisionNodeItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ ScalableRhombFigure figure = new ScalableRhombFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ScalableRhombFigure getPrimaryShape() { >+ return (ScalableRhombFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(20), getMapMode().DPtoLP(40)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ScalableRhombFigure extends org.eclipse.draw2d.Shape { >+ >+ /** >+ * @generated >+ */ >+ private final org.eclipse.draw2d.geometry.PointList myTemplate = new org.eclipse.draw2d.geometry.PointList(); >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.geometry.Rectangle myTemplateBounds; >+ >+ /** >+ * @generated >+ */ >+ public void addPoint(org.eclipse.draw2d.geometry.Point point) { >+ myTemplate.addPoint(point); >+ myTemplateBounds = null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void fillShape(org.eclipse.draw2d.Graphics graphics) { >+ org.eclipse.draw2d.geometry.Rectangle bounds = getBounds(); >+ graphics.pushState(); >+ graphics.translate(bounds.x, bounds.y); >+ graphics.fillPolygon(scalePointList()); >+ graphics.popState(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void outlineShape(org.eclipse.draw2d.Graphics graphics) { >+ org.eclipse.draw2d.geometry.Rectangle bounds = getBounds(); >+ graphics.pushState(); >+ graphics.translate(bounds.x, bounds.y); >+ graphics.drawPolygon(scalePointList()); >+ graphics.popState(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.geometry.Rectangle getTemplateBounds() { >+ if (myTemplateBounds == null) { >+ myTemplateBounds = new org.eclipse.draw2d.geometry.Rectangle(); >+ myTemplateBounds = myTemplate.getBounds().union(0, 0); >+ //just safety -- we are going to use this as divider >+ if (myTemplateBounds.width < 1) { >+ myTemplateBounds.width = 1; >+ } >+ if (myTemplateBounds.height < 1) { >+ myTemplateBounds.height = 1; >+ } >+ } >+ return myTemplateBounds; >+ } >+ >+ /** >+ * @generated >+ */ >+ private int[] scalePointList() { >+ org.eclipse.draw2d.geometry.Rectangle pointsBounds = getTemplateBounds(); >+ org.eclipse.draw2d.geometry.Rectangle actualBounds = getBounds(); >+ >+ float xScale = ((float) actualBounds.width) / pointsBounds.width; >+ float yScale = ((float) actualBounds.height) / pointsBounds.height; >+ >+ if (xScale == 1 && yScale == 1) { >+ return myTemplate.toIntArray(); >+ } >+ int[] scaled = (int[]) myTemplate.toIntArray().clone(); >+ for (int i = 0; i < scaled.length; i += 2) { >+ scaled[i] = (int) Math.floor(scaled[i] * xScale); >+ scaled[i + 1] = (int) Math.floor(scaled[i + 1] * yScale); >+ } >+ return scaled; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ScalableRhombFigure() { >+ >+ this.setFill(true); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(20, 0)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(40, 20)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(20, 40)); >+ this.addPoint(new org.eclipse.draw2d.geometry.Point(0, 20)); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/providers/UMLViewProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/providers/UMLViewProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/providers/UMLViewProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/providers/UMLViewProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,253 @@ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gmf.runtime.diagram.core.providers.AbstractViewProvider; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventAction2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityFinalNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CentralBufferNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ControlFlowEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.DataStoreNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.DecisionNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.FlowFinalNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ForkNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InitialNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin5EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName5EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.JoinNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.MergeNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ObjectFlowEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.PinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.PinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.StructuredActivityNodeEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.diagram.activity.view.factories.AcceptEventAction2ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.AcceptEventActionViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.ActivityFinalNodeViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.ActivityViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.AddStructuralFeatureValueActionNameViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.AddStructuralFeatureValueActionViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.CallBehaviorActionNameViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.CallBehaviorActionViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.CallOperationActionNameViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.CallOperationActionViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.CentralBufferNodeViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.ControlFlowViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.CreateObjectActionNameViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.CreateObjectActionViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.DataStoreNodeViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.DecisionNodeViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.FlowFinalNodeViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.ForkNodeViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InitialNodeViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InputPin2ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InputPin3ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InputPin4ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InputPin5ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InputPinName2ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InputPinName3ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InputPinName4ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InputPinName5ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InputPinNameViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.InputPinViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.JoinNodeViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.MergeNodeViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.ObjectFlowViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.OpaqueActionNameViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.OpaqueActionViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.OutputPin2ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.OutputPin3ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.OutputPinName2ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.OutputPinName3ViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.OutputPinNameViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.OutputPinViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.PinNameViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.PinViewFactory; >+import org.eclipse.uml2.diagram.activity.view.factories.StructuredActivityNodeViewFactory; >+ >+/** >+ * @generated >+ */ >+public class UMLViewProvider extends AbstractViewProvider { >+ >+ /** >+ * @generated >+ */ >+ protected Class getDiagramViewClass(IAdaptable semanticAdapter, String diagramKind) { >+ EObject semanticElement = getSemanticElement(semanticAdapter); >+ if (ActivityEditPart.MODEL_ID.equals(diagramKind) && UMLVisualIDRegistry.getDiagramVisualID(semanticElement) != -1) { >+ return ActivityViewFactory.class; >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Class getNodeViewClass(IAdaptable semanticAdapter, View containerView, String semanticHint) { >+ if (containerView == null) { >+ return null; >+ } >+ IElementType elementType = getSemanticElementType(semanticAdapter); >+ if (elementType != null && !UMLElementTypes.isKnownElementType(elementType)) { >+ return null; >+ } >+ EClass semanticType = getSemanticEClass(semanticAdapter); >+ EObject semanticElement = getSemanticElement(semanticAdapter); >+ int nodeVID = UMLVisualIDRegistry.getNodeVisualID(containerView, semanticElement, semanticType, semanticHint); >+ switch (nodeVID) { >+ case AcceptEventActionEditPart.VISUAL_ID: >+ return AcceptEventActionViewFactory.class; >+ case AcceptEventAction2EditPart.VISUAL_ID: >+ return AcceptEventAction2ViewFactory.class; >+ case ActivityFinalNodeEditPart.VISUAL_ID: >+ return ActivityFinalNodeViewFactory.class; >+ case DecisionNodeEditPart.VISUAL_ID: >+ return DecisionNodeViewFactory.class; >+ case MergeNodeEditPart.VISUAL_ID: >+ return MergeNodeViewFactory.class; >+ case InitialNodeEditPart.VISUAL_ID: >+ return InitialNodeViewFactory.class; >+ case StructuredActivityNodeEditPart.VISUAL_ID: >+ return StructuredActivityNodeViewFactory.class; >+ case DataStoreNodeEditPart.VISUAL_ID: >+ return DataStoreNodeViewFactory.class; >+ case CentralBufferNodeEditPart.VISUAL_ID: >+ return CentralBufferNodeViewFactory.class; >+ case OpaqueActionEditPart.VISUAL_ID: >+ return OpaqueActionViewFactory.class; >+ case OpaqueActionNameEditPart.VISUAL_ID: >+ return OpaqueActionNameViewFactory.class; >+ case FlowFinalNodeEditPart.VISUAL_ID: >+ return FlowFinalNodeViewFactory.class; >+ case ForkNodeEditPart.VISUAL_ID: >+ return ForkNodeViewFactory.class; >+ case JoinNodeEditPart.VISUAL_ID: >+ return JoinNodeViewFactory.class; >+ case PinEditPart.VISUAL_ID: >+ return PinViewFactory.class; >+ case PinNameEditPart.VISUAL_ID: >+ return PinNameViewFactory.class; >+ case CreateObjectActionEditPart.VISUAL_ID: >+ return CreateObjectActionViewFactory.class; >+ case CreateObjectActionNameEditPart.VISUAL_ID: >+ return CreateObjectActionNameViewFactory.class; >+ case AddStructuralFeatureValueActionEditPart.VISUAL_ID: >+ return AddStructuralFeatureValueActionViewFactory.class; >+ case AddStructuralFeatureValueActionNameEditPart.VISUAL_ID: >+ return AddStructuralFeatureValueActionNameViewFactory.class; >+ case CallBehaviorActionEditPart.VISUAL_ID: >+ return CallBehaviorActionViewFactory.class; >+ case CallBehaviorActionNameEditPart.VISUAL_ID: >+ return CallBehaviorActionNameViewFactory.class; >+ case CallOperationActionEditPart.VISUAL_ID: >+ return CallOperationActionViewFactory.class; >+ case CallOperationActionNameEditPart.VISUAL_ID: >+ return CallOperationActionNameViewFactory.class; >+ case OutputPinEditPart.VISUAL_ID: >+ return OutputPinViewFactory.class; >+ case OutputPinNameEditPart.VISUAL_ID: >+ return OutputPinNameViewFactory.class; >+ case OutputPin2EditPart.VISUAL_ID: >+ return OutputPin2ViewFactory.class; >+ case OutputPinName2EditPart.VISUAL_ID: >+ return OutputPinName2ViewFactory.class; >+ case InputPinEditPart.VISUAL_ID: >+ return InputPinViewFactory.class; >+ case InputPinNameEditPart.VISUAL_ID: >+ return InputPinNameViewFactory.class; >+ case InputPin2EditPart.VISUAL_ID: >+ return InputPin2ViewFactory.class; >+ case InputPinName2EditPart.VISUAL_ID: >+ return InputPinName2ViewFactory.class; >+ case InputPin3EditPart.VISUAL_ID: >+ return InputPin3ViewFactory.class; >+ case InputPinName3EditPart.VISUAL_ID: >+ return InputPinName3ViewFactory.class; >+ case OutputPin3EditPart.VISUAL_ID: >+ return OutputPin3ViewFactory.class; >+ case OutputPinName3EditPart.VISUAL_ID: >+ return OutputPinName3ViewFactory.class; >+ case InputPin4EditPart.VISUAL_ID: >+ return InputPin4ViewFactory.class; >+ case InputPinName4EditPart.VISUAL_ID: >+ return InputPinName4ViewFactory.class; >+ case InputPin5EditPart.VISUAL_ID: >+ return InputPin5ViewFactory.class; >+ case InputPinName5EditPart.VISUAL_ID: >+ return InputPinName5ViewFactory.class; >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Class getEdgeViewClass(IAdaptable semanticAdapter, View containerView, String semanticHint) { >+ IElementType elementType = getSemanticElementType(semanticAdapter); >+ if (elementType != null && !UMLElementTypes.isKnownElementType(elementType)) { >+ return null; >+ } >+ EClass semanticType = getSemanticEClass(semanticAdapter); >+ if (semanticType == null) { >+ return null; >+ } >+ EObject semanticElement = getSemanticElement(semanticAdapter); >+ int linkVID = UMLVisualIDRegistry.getLinkWithClassVisualID(semanticElement, semanticType); >+ switch (linkVID) { >+ case ControlFlowEditPart.VISUAL_ID: >+ return ControlFlowViewFactory.class; >+ case ObjectFlowEditPart.VISUAL_ID: >+ return ObjectFlowViewFactory.class; >+ } >+ return getUnrecognizedConnectorViewClass(semanticAdapter, containerView, semanticHint); >+ } >+ >+ /** >+ * @generated >+ */ >+ private IElementType getSemanticElementType(IAdaptable semanticAdapter) { >+ if (semanticAdapter == null) { >+ return null; >+ } >+ return (IElementType) semanticAdapter.getAdapter(IElementType.class); >+ } >+ >+ /** >+ * @generated >+ */ >+ private Class getUnrecognizedConnectorViewClass(IAdaptable semanticAdapter, View containerView, String semanticHint) { >+ // Handle unrecognized child node classes here >+ return null; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/AcceptEventAction2ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/AcceptEventAction2ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/AcceptEventAction2ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/AcceptEventAction2ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class AcceptEventAction2ViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventAction2EditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/CallBehaviorActionCanonicalEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/CallBehaviorActionCanonicalEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/CallBehaviorActionCanonicalEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/CallBehaviorActionCanonicalEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,61 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import java.util.Iterator; >+import java.util.LinkedList; >+import java.util.List; >+ >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.uml.CallAction; >+import org.eclipse.uml2.uml.InvocationAction; >+ >+/** >+ * @generated >+ */ >+public class CallBehaviorActionCanonicalEditPolicy extends CanonicalEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected List getSemanticChildrenList() { >+ List result = new LinkedList(); >+ EObject modelObject = ((View) getHost().getModel()).getElement(); >+ View viewObject = (View) getHost().getModel(); >+ EObject nextValue; >+ int nodeVID; >+ for (Iterator values = ((CallAction) modelObject).getResults().iterator(); values.hasNext();) { >+ nextValue = (EObject) values.next(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (OutputPin3EditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ } >+ for (Iterator values = ((InvocationAction) modelObject).getArguments().iterator(); values.hasNext();) { >+ nextValue = (EObject) values.next(); >+ nodeVID = UMLVisualIDRegistry.getNodeVisualID(viewObject, nextValue); >+ if (InputPin4EditPart.VISUAL_ID == nodeVID) { >+ result.add(nextValue); >+ } >+ } >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean shouldDeleteView(View view) { >+ return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getDefaultFactoryHint() { >+ return null; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinName2EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinName2EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinName2EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinName2EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,524 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class OutputPinName2EditPart extends UMLExtNodeLabelEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5004; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ static { >+ registerSnapBackPosition(UMLVisualIDRegistry.getType(OutputPinName2EditPart.VISUAL_ID), new Point(0, 0)); >+ } >+ >+ /** >+ * @generated >+ */ >+ public OutputPinName2EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(IFigure figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.OutputPin_3002; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ IFigure label = createFigurePrim(); >+ defaultText = getLabelTextHelper(label); >+ return label; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigurePrim() { >+ return new WrapLabel(); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinNameEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinNameEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinNameEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinNameEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,524 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class InputPinNameEditPart extends UMLExtNodeLabelEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5006; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ static { >+ registerSnapBackPosition(UMLVisualIDRegistry.getType(InputPinNameEditPart.VISUAL_ID), new Point(0, 0)); >+ } >+ >+ /** >+ * @generated >+ */ >+ public InputPinNameEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(IFigure figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.InputPin_3003; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ IFigure label = createFigurePrim(); >+ defaultText = getLabelTextHelper(label); >+ return label; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigurePrim() { >+ return new WrapLabel(); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/DataStoreNodeEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/DataStoreNodeEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/DataStoreNodeEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/DataStoreNodeEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class DataStoreNodeEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPinEditHelperAdvice.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPinEditHelperAdvice.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPinEditHelperAdvice.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPinEditHelperAdvice.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,9 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice; >+ >+/** >+ * @generated >+ */ >+public class OutputPinEditHelperAdvice extends AbstractEditHelperAdvice { >+} >Index: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorActionProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorActionProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorActionProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorActionProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,154 @@ >+package org.eclipse.uml2.diagram.activity.navigator; >+ >+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditorInput; >+ >+import org.eclipse.gmf.runtime.notation.Diagram; >+ >+import org.eclipse.jface.action.Action; >+import org.eclipse.jface.action.IMenuManager; >+ >+import org.eclipse.jface.viewers.IStructuredSelection; >+ >+import org.eclipse.ui.IActionBars; >+import org.eclipse.ui.IWorkbenchPage; >+import org.eclipse.ui.PartInitException; >+ >+import org.eclipse.ui.navigator.CommonActionProvider; >+import org.eclipse.ui.navigator.ICommonActionConstants; >+import org.eclipse.ui.navigator.ICommonActionExtensionSite; >+import org.eclipse.ui.navigator.ICommonMenuConstants; >+import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite; >+ >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+ >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditor; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class UMLNavigatorActionProvider extends CommonActionProvider { >+ >+ /** >+ * @generated >+ */ >+ private boolean myContribute; >+ >+ /** >+ * @generated >+ */ >+ private OpenDiagramAction myOpenDiagramAction; >+ >+ /** >+ * @generated >+ */ >+ public void init(ICommonActionExtensionSite aSite) { >+ super.init(aSite); >+ if (aSite.getViewSite() instanceof ICommonViewerWorkbenchSite) { >+ myContribute = true; >+ makeActions((ICommonViewerWorkbenchSite) aSite.getViewSite()); >+ } else { >+ myContribute = false; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void makeActions(ICommonViewerWorkbenchSite viewerSite) { >+ myOpenDiagramAction = new OpenDiagramAction(viewerSite); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void fillActionBars(IActionBars actionBars) { >+ if (!myContribute) { >+ return; >+ } >+ IStructuredSelection selection = (IStructuredSelection) getContext().getSelection(); >+ myOpenDiagramAction.selectionChanged(selection); >+ if (myOpenDiagramAction.isEnabled()) { >+ actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, myOpenDiagramAction); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void fillContextMenu(IMenuManager menu) { >+ /* if (!myContribute || getContext().getSelection().isEmpty()) { >+ return; >+ } >+ >+ IStructuredSelection selection = (IStructuredSelection) getContext().getSelection(); >+ >+ myOpenDiagramAction.selectionChanged(selection); >+ if (myOpenDiagramAction.isEnabled()) { >+ menu.insertAfter(ICommonMenuConstants.GROUP_OPEN, myOpenDiagramAction); >+ }*/ >+ } >+ >+ /** >+ * @generated >+ */ >+ private class OpenDiagramAction extends Action { >+ >+ /** >+ * @generated >+ */ >+ private Diagram myDiagram; >+ >+ /** >+ * @generated >+ */ >+ private ICommonViewerWorkbenchSite myViewerSite; >+ >+ /** >+ * @generated >+ */ >+ public OpenDiagramAction(ICommonViewerWorkbenchSite viewerSite) { >+ super("Open Diagram"); >+ myViewerSite = viewerSite; >+ } >+ >+ /** >+ * @generated >+ */ >+ public final void selectionChanged(IStructuredSelection selection) { >+ myDiagram = null; >+ if (selection.size() == 1) { >+ Object selectedElement = selection.getFirstElement(); >+ if (selectedElement instanceof UMLNavigatorItem) { >+ selectedElement = ((UMLNavigatorItem) selectedElement).getView(); >+ } >+ if (selectedElement instanceof Diagram) { >+ Diagram diagram = (Diagram) selectedElement; >+ if (ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(diagram))) { >+ myDiagram = diagram; >+ } >+ } >+ } >+ setEnabled(myDiagram != null); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void run() { >+ if (myDiagram == null) { >+ return; >+ } >+ DiagramEditorInput editorInput = new DiagramEditorInput(myDiagram); >+ IWorkbenchPage page = myViewerSite.getPage(); >+ try { >+ page.openEditor(editorInput, UMLDiagramEditor.ID); >+ } catch (PartInitException e) { >+ UMLDiagramEditorPlugin.getInstance().logError("Exception while openning diagram", e); >+ } >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPinItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPinItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPinItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPinItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class OutputPinItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/ControlFlowItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/ControlFlowItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/ControlFlowItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/ControlFlowItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,18 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+ >+/** >+ * @generated >+ */ >+public class ControlFlowItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req)); >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/CallBehaviorActionEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/CallBehaviorActionEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/CallBehaviorActionEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/CallBehaviorActionEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,422 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.CallBehaviorActionCanonicalEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.CallBehaviorActionItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class CallBehaviorActionEditPart extends AbstractBorderedShapeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2017; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public CallBehaviorActionEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new CallBehaviorActionItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); >+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new CallBehaviorActionCanonicalEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ ActionCallBehaviorFigure figure = new ActionCallBehaviorFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ActionCallBehaviorFigure getPrimaryShape() { >+ return (ActionCallBehaviorFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (editPart instanceof OutputPin3EditPart) { >+ return getBorderedFigure().getBorderItemContainer(); >+ } >+ if (editPart instanceof InputPin4EditPart) { >+ return getBorderedFigure().getBorderItemContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean addFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof CallBehaviorActionNameEditPart) { >+ ((CallBehaviorActionNameEditPart) childEditPart).setLabel(getPrimaryShape().getFigureActionCallBehaviorFigure_name()); >+ return true; >+ } >+ if (childEditPart instanceof OutputPin3EditPart) { >+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.EAST); >+ getBorderedFigure().getBorderItemContainer().add(((OutputPin3EditPart) childEditPart).getFigure(), locator); >+ return true; >+ } >+ if (childEditPart instanceof InputPin4EditPart) { >+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.WEST); >+ getBorderedFigure().getBorderItemContainer().add(((InputPin4EditPart) childEditPart).getFigure(), locator); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean removeFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof OutputPin3EditPart) { >+ getBorderedFigure().getBorderItemContainer().remove(((OutputPin3EditPart) childEditPart).getFigure()); >+ return true; >+ } >+ if (childEditPart instanceof InputPin4EditPart) { >+ getBorderedFigure().getBorderItemContainer().remove(((InputPin4EditPart) childEditPart).getFigure()); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(80), getMapMode().DPtoLP(50)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createMainFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(CallBehaviorActionNameEditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (addFixedChild(childEditPart)) { >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (removeFixedChild(childEditPart)) { >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ActionCallBehaviorFigure extends org.eclipse.draw2d.RoundedRectangle { >+ >+ /** >+ * @generated >+ */ >+ public ActionCallBehaviorFigure() { >+ >+ org.eclipse.draw2d.BorderLayout myGenLayoutManager = new org.eclipse.draw2d.BorderLayout(); >+ >+ this.setLayoutManager(myGenLayoutManager); >+ >+ this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(16), getMapMode().DPtoLP(16))); >+ >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.draw2d.RectangleFigure fig_0 = new org.eclipse.draw2d.RectangleFigure(); >+ fig_0.setFill(false); >+ fig_0.setOutline(false); >+ >+ org.eclipse.draw2d.BorderLayout layouter0 = new org.eclipse.draw2d.BorderLayout(); >+ >+ fig_0.setLayoutManager(layouter0); >+ >+ setFigureActionCallBehaviorFigure_AuxBottom(fig_0); >+ >+ Object layData0 = org.eclipse.draw2d.BorderLayout.BOTTOM; >+ >+ this.add(fig_0, layData0); >+ org.eclipse.draw2d.RectangleFigure fig_1 = new org.eclipse.draw2d.RectangleFigure(); >+ fig_1.setFill(false); >+ fig_1.setOutline(false); >+ >+ org.eclipse.draw2d.StackLayout layouter1 = new org.eclipse.draw2d.StackLayout(); >+ >+ fig_1.setLayoutManager(layouter1); >+ >+ Object layData1 = org.eclipse.draw2d.BorderLayout.LEFT; >+ >+ fig_0.add(fig_1, layData1); >+ org.eclipse.uml2.diagram.common.draw2d.PolylineContainer fig_2 = new org.eclipse.uml2.diagram.common.draw2d.PolylineContainer(); >+ >+ fig_2.setPreferredSize(getMapMode().DPtoLP(20), getMapMode().DPtoLP(20)); >+ >+ Object layData2 = null; >+ >+ fig_1.add(fig_2, layData2); >+ org.eclipse.draw2d.Polyline fig_3 = new org.eclipse.draw2d.Polyline(); >+ >+ fig_3.setLineWidth(2); >+ fig_3.setForegroundColor(org.eclipse.draw2d.ColorConstants.darkBlue); >+ fig_3.addPoint(new org.eclipse.draw2d.geometry.Point(10, 4)); >+ fig_3.addPoint(new org.eclipse.draw2d.geometry.Point(10, 16)); >+ >+ Object layData3 = null; >+ >+ fig_2.add(fig_3, layData3); >+ org.eclipse.draw2d.Polyline fig_4 = new org.eclipse.draw2d.Polyline(); >+ >+ fig_4.setLineWidth(2); >+ fig_4.setForegroundColor(org.eclipse.draw2d.ColorConstants.darkBlue); >+ fig_4.addPoint(new org.eclipse.draw2d.geometry.Point(10, 10)); >+ fig_4.addPoint(new org.eclipse.draw2d.geometry.Point(5, 10)); >+ fig_4.addPoint(new org.eclipse.draw2d.geometry.Point(5, 16)); >+ >+ Object layData4 = null; >+ >+ fig_2.add(fig_4, layData4); >+ org.eclipse.draw2d.Polyline fig_5 = new org.eclipse.draw2d.Polyline(); >+ >+ fig_5.setLineWidth(2); >+ fig_5.setForegroundColor(org.eclipse.draw2d.ColorConstants.darkBlue); >+ fig_5.addPoint(new org.eclipse.draw2d.geometry.Point(10, 10)); >+ fig_5.addPoint(new org.eclipse.draw2d.geometry.Point(15, 10)); >+ fig_5.addPoint(new org.eclipse.draw2d.geometry.Point(15, 16)); >+ >+ Object layData5 = null; >+ >+ fig_2.add(fig_5, layData5); >+ org.eclipse.draw2d.RectangleFigure fig_6 = new org.eclipse.draw2d.RectangleFigure(); >+ fig_6.setFill(false); >+ fig_6.setOutline(false); >+ >+ org.eclipse.uml2.diagram.common.draw2d.CenterLayout layouter6 = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout(); >+ >+ fig_6.setLayoutManager(layouter6); >+ >+ setFigureActionCallBehaviorFigure_AuxCenter(fig_6); >+ >+ Object layData6 = org.eclipse.draw2d.BorderLayout.CENTER; >+ >+ this.add(fig_6, layData6); >+ org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_7 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel(); >+ >+ fig_7.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(0), getMapMode().DPtoLP(5), getMapMode().DPtoLP(0), getMapMode().DPtoLP(5))); >+ >+ setFigureActionCallBehaviorFigure_name(fig_7); >+ >+ Object layData7 = null; >+ >+ fig_6.add(fig_7, layData7); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.RectangleFigure fActionCallBehaviorFigure_AuxBottom; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.draw2d.RectangleFigure getFigureActionCallBehaviorFigure_AuxBottom() { >+ return fActionCallBehaviorFigure_AuxBottom; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureActionCallBehaviorFigure_AuxBottom(org.eclipse.draw2d.RectangleFigure fig) { >+ fActionCallBehaviorFigure_AuxBottom = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.RectangleFigure fActionCallBehaviorFigure_AuxCenter; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.draw2d.RectangleFigure getFigureActionCallBehaviorFigure_AuxCenter() { >+ return fActionCallBehaviorFigure_AuxCenter; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureActionCallBehaviorFigure_AuxCenter(org.eclipse.draw2d.RectangleFigure fig) { >+ fActionCallBehaviorFigure_AuxCenter = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fActionCallBehaviorFigure_name; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureActionCallBehaviorFigure_name() { >+ return fActionCallBehaviorFigure_name; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureActionCallBehaviorFigure_name(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) { >+ fActionCallBehaviorFigure_name = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName5ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName5ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName5ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName5ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; >+import org.eclipse.gmf.runtime.diagram.ui.util.MeasurementUnitHelper; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractLabelViewFactory; >+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; >+import org.eclipse.gmf.runtime.notation.Location; >+import org.eclipse.gmf.runtime.notation.Node; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class InputPinName5ViewFactory extends AbstractLabelViewFactory { >+ >+ /** >+ * @generated >+ */ >+ public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) { >+ Node view = (Node) super.createView(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint); >+ Location location = (Location) view.getLayoutConstraint(); >+ IMapMode mapMode = MeasurementUnitHelper.getMapMode(containerView.getDiagram().getMeasurementUnit()); >+ location.setX(mapMode.DPtoLP(0)); >+ location.setY(mapMode.DPtoLP(5)); >+ return view; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/JoinNodeEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/JoinNodeEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/JoinNodeEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/JoinNodeEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class JoinNodeEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorGroup.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorGroup.java >diff -N src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorGroup.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorGroup.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,103 @@ >+package org.eclipse.uml2.diagram.activity.navigator; >+ >+import java.util.Collection; >+import java.util.LinkedList; >+ >+/** >+ * @generated >+ */ >+public class UMLNavigatorGroup extends UMLAbstractNavigatorItem { >+ >+ /** >+ * @generated >+ */ >+ private String myGroupName; >+ >+ /** >+ * @generated >+ */ >+ private String myIcon; >+ >+ /** >+ * @generated >+ */ >+ private String myModelID; >+ >+ /** >+ * @generated >+ */ >+ private Collection myChildren = new LinkedList(); >+ >+ /** >+ * @generated >+ */ >+ UMLNavigatorGroup(String groupName, String icon, String modelID, Object parent) { >+ super(parent); >+ myGroupName = groupName; >+ myIcon = icon; >+ myModelID = modelID; >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getGroupName() { >+ return myGroupName; >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getIcon() { >+ return myIcon; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object[] getChildren() { >+ return myChildren.toArray(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void addChildren(Collection children) { >+ myChildren.addAll(children); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void addChild(Object child) { >+ myChildren.add(child); >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean isEmpty() { >+ return myChildren.size() == 0; >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getModelID() { >+ return myModelID; >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean equals(Object obj) { >+ if (obj instanceof UMLNavigatorGroup) { >+ UMLNavigatorGroup anotherGroup = (UMLNavigatorGroup) obj; >+ if (getGroupName().equals(anotherGroup.getGroupName())) { >+ return getParent().equals(anotherGroup.getParent()); >+ } >+ } >+ return super.equals(obj); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/CallBehaviorActionItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/CallBehaviorActionItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/CallBehaviorActionItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/CallBehaviorActionItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,282 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class CallBehaviorActionItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCommand(CreateElementRequest req) { >+ if (UMLElementTypes.OutputPin_3006 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getCallAction_Result()); >+ } >+ return getMSLWrapper(new CreateOutputPin_3006Command(req)); >+ } >+ if (UMLElementTypes.InputPin_3007 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getInvocationAction_Argument()); >+ } >+ return getMSLWrapper(new CreateInputPin_3007Command(req)); >+ } >+ return super.getCreateCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateOutputPin_3006Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateOutputPin_3006Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getCallBehaviorAction(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateInputPin_3007Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateInputPin_3007Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getCallBehaviorAction(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin3ItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin3ItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin3ItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin3ItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class InputPin3ItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin3EditHelperAdvice.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin3EditHelperAdvice.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin3EditHelperAdvice.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin3EditHelperAdvice.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,9 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice; >+ >+/** >+ * @generated >+ */ >+public class InputPin3EditHelperAdvice extends AbstractEditHelperAdvice { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/AddStructuralFeatureValueActionNameEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/AddStructuralFeatureValueActionNameEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/AddStructuralFeatureValueActionNameEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/AddStructuralFeatureValueActionNameEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,545 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.ArrayList; >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.handles.NonResizableHandleKit; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class AddStructuralFeatureValueActionNameEditPart extends CompartmentEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5009; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ public AddStructuralFeatureValueActionNameEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() { >+ >+ protected List createSelectionHandles() { >+ List handles = new ArrayList(); >+ NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles); >+ return handles; >+ } >+ >+ public Command getCommand(Request request) { >+ return null; >+ } >+ >+ public boolean understandsRequest(Request request) { >+ return false; >+ } >+ }); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(WrapLabel figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.AddStructuralFeatureValueAction_2016; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addNotationalListeners() { >+ super.addNotationalListeners(); >+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeNotationalListeners() { >+ super.removeNotationalListeners(); >+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ // Parent should assign one using setLabel method >+ return null; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/InitialNodeItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/InitialNodeItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/InitialNodeItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/InitialNodeItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class InitialNodeItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/CreateObjectActionItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/CreateObjectActionItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/CreateObjectActionItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/CreateObjectActionItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,250 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.CreateObjectAction; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class CreateObjectActionItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCommand(CreateElementRequest req) { >+ if (UMLElementTypes.OutputPin_3002 == req.getElementType()) { >+ CreateObjectAction container = (CreateObjectAction) (req.getContainer() instanceof View ? ((View) req.getContainer()).getElement() : req.getContainer()); >+ if (container.getResult() != null) { >+ return super.getCreateCommand(req); >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getCreateObjectAction_Result()); >+ } >+ return getMSLWrapper(new CreateOutputPin_3002Command(req)); >+ } >+ return super.getCreateCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateOutputPin_3002Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateOutputPin_3002Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getCreateObjectAction(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/providers/UMLStructuralFeaturesParser.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/providers/UMLStructuralFeaturesParser.java >diff -N src/org/eclipse/uml2/diagram/activity/providers/UMLStructuralFeaturesParser.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/providers/UMLStructuralFeaturesParser.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,102 @@ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import java.text.FieldPosition; >+import java.text.MessageFormat; >+import java.util.ArrayList; >+import java.util.Iterator; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.ecore.EStructuralFeature; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.emf.transaction.util.TransactionUtil; >+import org.eclipse.gmf.runtime.common.core.command.ICommand; >+import org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin; >+ >+/** >+ * @generated >+ */ >+public class UMLStructuralFeaturesParser extends UMLAbstractParser { >+ >+ /** >+ * @generated >+ */ >+ private List features; >+ >+ /** >+ * @generated >+ */ >+ public UMLStructuralFeaturesParser(List features) { >+ this.features = features; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getStringByPattern(IAdaptable adapter, int flags, String pattern, MessageFormat processor) { >+ EObject element = (EObject) adapter.getAdapter(EObject.class); >+ List values = new ArrayList(features.size()); >+ for (Iterator it = features.iterator(); it.hasNext();) { >+ EStructuralFeature feature = (EStructuralFeature) it.next(); >+ Object value = element.eGet(feature); >+ value = getValidValue(feature, value); >+ values.add(value); >+ } >+ return processor.format(values.toArray(new Object[values.size()]), new StringBuffer(), new FieldPosition(0)).toString(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParserEditStatus validateValues(Object[] values) { >+ if (values.length != features.size()) { >+ return ParserEditStatus.UNEDITABLE_STATUS; >+ } >+ for (int i = 0; i < values.length; i++) { >+ Object value = getValidNewValue((EStructuralFeature) features.get(i), values[i]); >+ if (value instanceof InvalidValue) { >+ return new ParserEditStatus(UMLDiagramEditorPlugin.ID, IParserEditStatus.UNEDITABLE, value.toString()); >+ } >+ } >+ return ParserEditStatus.EDITABLE_STATUS; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICommand getParseCommand(IAdaptable adapter, Object[] values) { >+ EObject element = (EObject) adapter.getAdapter(EObject.class); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(element); >+ if (editingDomain == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ CompositeTransactionalCommand command = new CompositeTransactionalCommand(editingDomain, "Set Values"); //$NON-NLS-1$ >+ for (int i = 0; i < values.length; i++) { >+ EStructuralFeature feature = (EStructuralFeature) features.get(i); >+ command.compose(getModificationCommand(element, feature, values[i])); >+ } >+ return command; >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean isAffectingEvent(Object event, int flags) { >+ if (event instanceof Notification) { >+ Object feature = ((Notification) event).getFeature(); >+ if (features.contains(feature)) { >+ return true; >+ } >+ } >+ return false; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPinEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPinEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPinEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPinEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class OutputPinEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName4EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName4EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName4EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InputPinName4EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,524 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class InputPinName4EditPart extends UMLExtNodeLabelEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5011; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ static { >+ registerSnapBackPosition(UMLVisualIDRegistry.getType(InputPinName4EditPart.VISUAL_ID), new Point(0, 0)); >+ } >+ >+ /** >+ * @generated >+ */ >+ public InputPinName4EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(IFigure figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.InputPin_3007; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ IFigure label = createFigurePrim(); >+ defaultText = getLabelTextHelper(label); >+ return label; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigurePrim() { >+ return new WrapLabel(); >+ } >+ >+} >Index: build.properties >=================================================================== >RCS file: build.properties >diff -N build.properties >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ build.properties 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+bin.includes = .,\ >+ META-INF/,\ >+ plugin.xml,\ >+ plugin.properties >+jars.compile.order = . >+source.. = src/ >+output.. = bin/ >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/StructuredActivityNodeItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/StructuredActivityNodeItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/StructuredActivityNodeItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/StructuredActivityNodeItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class StructuredActivityNodeItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/JoinNodeViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/JoinNodeViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/JoinNodeViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/JoinNodeViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class JoinNodeViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.JoinNodeEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/providers/UMLParserProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/providers/UMLParserProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/providers/UMLParserProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/providers/UMLParserProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,419 @@ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.common.core.service.AbstractProvider; >+import org.eclipse.gmf.runtime.common.core.service.IOperation; >+import org.eclipse.gmf.runtime.common.ui.services.parser.GetParserOperation; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserProvider; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName5EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.PinNameEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class UMLParserProvider extends AbstractProvider implements IParserProvider { >+ >+ /** >+ * @generated >+ */ >+ private IParser outputPinOutputPinName_5003Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getOutputPinOutputPinName_5003Parser() { >+ if (outputPinOutputPinName_5003Parser == null) { >+ outputPinOutputPinName_5003Parser = createOutputPinOutputPinName_5003Parser(); >+ } >+ return outputPinOutputPinName_5003Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createOutputPinOutputPinName_5003Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser outputPinOutputPinName_5004Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getOutputPinOutputPinName_5004Parser() { >+ if (outputPinOutputPinName_5004Parser == null) { >+ outputPinOutputPinName_5004Parser = createOutputPinOutputPinName_5004Parser(); >+ } >+ return outputPinOutputPinName_5004Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createOutputPinOutputPinName_5004Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser inputPinInputPinName_5006Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getInputPinInputPinName_5006Parser() { >+ if (inputPinInputPinName_5006Parser == null) { >+ inputPinInputPinName_5006Parser = createInputPinInputPinName_5006Parser(); >+ } >+ return inputPinInputPinName_5006Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createInputPinInputPinName_5006Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser inputPinInputPinName_5007Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getInputPinInputPinName_5007Parser() { >+ if (inputPinInputPinName_5007Parser == null) { >+ inputPinInputPinName_5007Parser = createInputPinInputPinName_5007Parser(); >+ } >+ return inputPinInputPinName_5007Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createInputPinInputPinName_5007Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser inputPinInputPinName_5008Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getInputPinInputPinName_5008Parser() { >+ if (inputPinInputPinName_5008Parser == null) { >+ inputPinInputPinName_5008Parser = createInputPinInputPinName_5008Parser(); >+ } >+ return inputPinInputPinName_5008Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createInputPinInputPinName_5008Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser outputPinOutputPinName_5010Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getOutputPinOutputPinName_5010Parser() { >+ if (outputPinOutputPinName_5010Parser == null) { >+ outputPinOutputPinName_5010Parser = createOutputPinOutputPinName_5010Parser(); >+ } >+ return outputPinOutputPinName_5010Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createOutputPinOutputPinName_5010Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser inputPinInputPinName_5011Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getInputPinInputPinName_5011Parser() { >+ if (inputPinInputPinName_5011Parser == null) { >+ inputPinInputPinName_5011Parser = createInputPinInputPinName_5011Parser(); >+ } >+ return inputPinInputPinName_5011Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createInputPinInputPinName_5011Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser inputPinInputPinName_5013Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getInputPinInputPinName_5013Parser() { >+ if (inputPinInputPinName_5013Parser == null) { >+ inputPinInputPinName_5013Parser = createInputPinInputPinName_5013Parser(); >+ } >+ return inputPinInputPinName_5013Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createInputPinInputPinName_5013Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser opaqueActionOpaqueActionName_5001Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getOpaqueActionOpaqueActionName_5001Parser() { >+ if (opaqueActionOpaqueActionName_5001Parser == null) { >+ opaqueActionOpaqueActionName_5001Parser = createOpaqueActionOpaqueActionName_5001Parser(); >+ } >+ return opaqueActionOpaqueActionName_5001Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createOpaqueActionOpaqueActionName_5001Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser pinPinName_5002Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getPinPinName_5002Parser() { >+ if (pinPinName_5002Parser == null) { >+ pinPinName_5002Parser = createPinPinName_5002Parser(); >+ } >+ return pinPinName_5002Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createPinPinName_5002Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser createObjectActionCreateObjectActionName_5005Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getCreateObjectActionCreateObjectActionName_5005Parser() { >+ if (createObjectActionCreateObjectActionName_5005Parser == null) { >+ createObjectActionCreateObjectActionName_5005Parser = createCreateObjectActionCreateObjectActionName_5005Parser(); >+ } >+ return createObjectActionCreateObjectActionName_5005Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createCreateObjectActionCreateObjectActionName_5005Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser addStructuralFeatureValueActionAddStructuralFeatureValueActionName_5009Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getAddStructuralFeatureValueActionAddStructuralFeatureValueActionName_5009Parser() { >+ if (addStructuralFeatureValueActionAddStructuralFeatureValueActionName_5009Parser == null) { >+ addStructuralFeatureValueActionAddStructuralFeatureValueActionName_5009Parser = createAddStructuralFeatureValueActionAddStructuralFeatureValueActionName_5009Parser(); >+ } >+ return addStructuralFeatureValueActionAddStructuralFeatureValueActionName_5009Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createAddStructuralFeatureValueActionAddStructuralFeatureValueActionName_5009Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser callBehaviorActionCallBehaviorActionName_5012Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getCallBehaviorActionCallBehaviorActionName_5012Parser() { >+ if (callBehaviorActionCallBehaviorActionName_5012Parser == null) { >+ callBehaviorActionCallBehaviorActionName_5012Parser = createCallBehaviorActionCallBehaviorActionName_5012Parser(); >+ } >+ return callBehaviorActionCallBehaviorActionName_5012Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createCallBehaviorActionCallBehaviorActionName_5012Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IParser callOperationActionCallOperationActionName_5014Parser; >+ >+ /** >+ * @generated >+ */ >+ private IParser getCallOperationActionCallOperationActionName_5014Parser() { >+ if (callOperationActionCallOperationActionName_5014Parser == null) { >+ callOperationActionCallOperationActionName_5014Parser = createCallOperationActionCallOperationActionName_5014Parser(); >+ } >+ return callOperationActionCallOperationActionName_5014Parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser createCallOperationActionCallOperationActionName_5014Parser() { >+ UMLStructuralFeatureParser parser = new UMLStructuralFeatureParser(UMLPackage.eINSTANCE.getNamedElement_Name()); >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParser getParser(int visualID) { >+ switch (visualID) { >+ case OutputPinNameEditPart.VISUAL_ID: >+ return getOutputPinOutputPinName_5003Parser(); >+ case OutputPinName2EditPart.VISUAL_ID: >+ return getOutputPinOutputPinName_5004Parser(); >+ case InputPinNameEditPart.VISUAL_ID: >+ return getInputPinInputPinName_5006Parser(); >+ case InputPinName2EditPart.VISUAL_ID: >+ return getInputPinInputPinName_5007Parser(); >+ case InputPinName3EditPart.VISUAL_ID: >+ return getInputPinInputPinName_5008Parser(); >+ case OutputPinName3EditPart.VISUAL_ID: >+ return getOutputPinOutputPinName_5010Parser(); >+ case InputPinName4EditPart.VISUAL_ID: >+ return getInputPinInputPinName_5011Parser(); >+ case InputPinName5EditPart.VISUAL_ID: >+ return getInputPinInputPinName_5013Parser(); >+ case OpaqueActionNameEditPart.VISUAL_ID: >+ return getOpaqueActionOpaqueActionName_5001Parser(); >+ case PinNameEditPart.VISUAL_ID: >+ return getPinPinName_5002Parser(); >+ case CreateObjectActionNameEditPart.VISUAL_ID: >+ return getCreateObjectActionCreateObjectActionName_5005Parser(); >+ case AddStructuralFeatureValueActionNameEditPart.VISUAL_ID: >+ return getAddStructuralFeatureValueActionAddStructuralFeatureValueActionName_5009Parser(); >+ case CallBehaviorActionNameEditPart.VISUAL_ID: >+ return getCallBehaviorActionCallBehaviorActionName_5012Parser(); >+ case CallOperationActionNameEditPart.VISUAL_ID: >+ return getCallOperationActionCallOperationActionName_5014Parser(); >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser(IAdaptable hint) { >+ String vid = (String) hint.getAdapter(String.class); >+ if (vid != null) { >+ return getParser(UMLVisualIDRegistry.getVisualID(vid)); >+ } >+ View view = (View) hint.getAdapter(View.class); >+ if (view != null) { >+ return getParser(UMLVisualIDRegistry.getVisualID(view)); >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean provides(IOperation operation) { >+ if (operation instanceof GetParserOperation) { >+ IAdaptable hint = ((GetParserOperation) operation).getHint(); >+ if (UMLElementTypes.getElement(hint) == null) { >+ return false; >+ } >+ return getParser(hint) != null; >+ } >+ return false; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinNameViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinNameViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InputPinNameViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InputPinNameViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; >+import org.eclipse.gmf.runtime.diagram.ui.util.MeasurementUnitHelper; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractLabelViewFactory; >+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; >+import org.eclipse.gmf.runtime.notation.Location; >+import org.eclipse.gmf.runtime.notation.Node; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class InputPinNameViewFactory extends AbstractLabelViewFactory { >+ >+ /** >+ * @generated >+ */ >+ public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) { >+ Node view = (Node) super.createView(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint); >+ Location location = (Location) view.getLayoutConstraint(); >+ IMapMode mapMode = MeasurementUnitHelper.getMapMode(containerView.getDiagram().getMeasurementUnit()); >+ location.setX(mapMode.DPtoLP(0)); >+ location.setY(mapMode.DPtoLP(5)); >+ return view; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/ForkNodeItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/ForkNodeItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/ForkNodeItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/ForkNodeItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class ForkNodeItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/CallBehaviorActionNameViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/CallBehaviorActionNameViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/CallBehaviorActionNameViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/CallBehaviorActionNameViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.BasicNodeViewFactory; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class CallBehaviorActionNameViewFactory extends BasicNodeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/InitialNodeEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/InitialNodeEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/InitialNodeEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/InitialNodeEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class InitialNodeEditHelper extends UMLBaseEditHelper { >+} >Index: custom-src/org/eclipse/uml2/diagram/activity/providers/AcceptEventAction_2002_Initializer.java >=================================================================== >RCS file: custom-src/org/eclipse/uml2/diagram/activity/providers/AcceptEventAction_2002_Initializer.java >diff -N custom-src/org/eclipse/uml2/diagram/activity/providers/AcceptEventAction_2002_Initializer.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ custom-src/org/eclipse/uml2/diagram/activity/providers/AcceptEventAction_2002_Initializer.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,45 @@ >+/* >+ * Copyright (c) 2006 Borland Software Corporation >+ * >+ * 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: >+ * Michael Golubev (Borland) - initial API and implementation >+ */ >+ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.uml2.uml.AcceptEventAction; >+import org.eclipse.uml2.uml.TimeEvent; >+import org.eclipse.uml2.uml.Trigger; >+import org.eclipse.uml2.uml.UMLFactory; >+ >+public class AcceptEventAction_2002_Initializer extends UMLElementTypes.Initializers.ObjectInitializer { >+ public AcceptEventAction_2002_Initializer(){ >+ super(null); >+ } >+ >+ @Override >+ public void init(EObject instance) { >+ if (instance instanceof AcceptEventAction) { >+ AcceptEventAction action = (AcceptEventAction) instance; >+ org.eclipse.uml2.uml.Package pakkage = action.getNearestPackage(); >+ if (pakkage != null) { >+ Trigger trigger = action.createTrigger(null); >+ TimeEvent event = UMLFactory.eINSTANCE.createTimeEvent(); >+ pakkage.getPackagedElements().add(event); >+ trigger.setEvent(event); >+ } >+ } >+ } >+ >+ @Override >+ protected void init() { >+ throw new UnsupportedOperationException("Default generation artifact. Should not be called"); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/CreateObjectActionNameEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/CreateObjectActionNameEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/CreateObjectActionNameEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/CreateObjectActionNameEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,545 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.ArrayList; >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.handles.NonResizableHandleKit; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class CreateObjectActionNameEditPart extends CompartmentEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5005; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ public CreateObjectActionNameEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() { >+ >+ protected List createSelectionHandles() { >+ List handles = new ArrayList(); >+ NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles); >+ return handles; >+ } >+ >+ public Command getCommand(Request request) { >+ return null; >+ } >+ >+ public boolean understandsRequest(Request request) { >+ return false; >+ } >+ }); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(WrapLabel figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.CreateObjectAction_2015; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addNotationalListeners() { >+ super.addNotationalListeners(); >+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeNotationalListeners() { >+ super.removeNotationalListeners(); >+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ // Parent should assign one using setLabel method >+ return null; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/CallOperationActionNameViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/CallOperationActionNameViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/CallOperationActionNameViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/CallOperationActionNameViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.BasicNodeViewFactory; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class CallOperationActionNameViewFactory extends BasicNodeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/FlowFinalNodeEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/FlowFinalNodeEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/FlowFinalNodeEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/FlowFinalNodeEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class FlowFinalNodeEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPinEditHelperAdvice.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPinEditHelperAdvice.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPinEditHelperAdvice.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPinEditHelperAdvice.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,9 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice; >+ >+/** >+ * @generated >+ */ >+public class InputPinEditHelperAdvice extends AbstractEditHelperAdvice { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/CreateObjectActionEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/CreateObjectActionEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/CreateObjectActionEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/CreateObjectActionEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class CreateObjectActionEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/PinNameViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/PinNameViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/PinNameViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/PinNameViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.BasicNodeViewFactory; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class PinNameViewFactory extends BasicNodeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLCreationWizardPage.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLCreationWizardPage.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLCreationWizardPage.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLCreationWizardPage.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,111 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import java.io.ByteArrayInputStream; >+import java.io.InputStream; >+ >+import org.eclipse.core.resources.ResourcesPlugin; >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.util.DiagramFileCreator; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.ui.dialogs.WizardNewFileCreationPage; >+ >+/** >+ * @generated >+ */ >+public class UMLCreationWizardPage extends WizardNewFileCreationPage { >+ >+ /** >+ * @generated >+ */ >+ private static final String DOMAIN_EXT = ".uml"; //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ private static final String DIAGRAM_EXT = ".umlactivity_diagram"; //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public UMLCreationWizardPage(String pageName, IStructuredSelection selection) { >+ super(pageName, selection); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getDefaultFileName() { >+ return "default"; //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getFileName() { >+ String fileName = super.getFileName(); >+ if (fileName != null && !fileName.endsWith(DIAGRAM_EXT)) { >+ fileName += DIAGRAM_EXT; >+ } >+ return fileName; >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getUniqueFileName(IPath containerPath, String fileName) { >+ String newFileName = fileName; >+ IPath diagramFilePath = containerPath.append(newFileName + DIAGRAM_EXT); >+ IPath modelFilePath = containerPath.append(newFileName + DOMAIN_EXT); >+ int i = 1; >+ while (exists(diagramFilePath) || exists(modelFilePath)) { >+ i++; >+ newFileName = fileName + i; >+ diagramFilePath = containerPath.append(newFileName + DIAGRAM_EXT); >+ modelFilePath = containerPath.append(newFileName + DOMAIN_EXT); >+ } >+ return newFileName; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void createControl(Composite parent) { >+ super.createControl(parent); >+ IPath path = getContainerFullPath(); >+ if (path != null) { >+ String fileName = getUniqueFileName(path, getDefaultFileName()); >+ setFileName(fileName); >+ } else { >+ setFileName(getDefaultFileName()); >+ } >+ setPageComplete(validatePage()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean validatePage() { >+ if (super.validatePage()) { >+ String fileName = getFileName(); >+ if (fileName == null) { >+ return false; >+ } >+ fileName = fileName.substring(0, fileName.length() - DIAGRAM_EXT.length()) + DOMAIN_EXT; >+ IPath path = getContainerFullPath().append(fileName); >+ if (exists(path)) { >+ setErrorMessage("Model file already exists: " + path.lastSegment()); >+ return false; >+ } >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static boolean exists(IPath path) { >+ return ResourcesPlugin.getWorkspace().getRoot().exists(path); >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/OpaqueActionViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/OpaqueActionViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/OpaqueActionViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/OpaqueActionViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class OpaqueActionViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(OpaqueActionNameEditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: plugin.properties >=================================================================== >RCS file: plugin.properties >diff -N plugin.properties >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ plugin.properties 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,19 @@ >+pluginName=Activity Diagram Plugin >+providerName=Eclipse >+ >+editorName=UMLActivity Diagram Editor >+newWizardName=UMLActivity Diagram >+newWizardDesc=Creates UMLActivity diagram. >+ >+initDiagramActionLabel=Initialize umlactivity_diagram diagram file >+loadResourceActionLabel=Load Resource... >+ >+navigatorContentName=*.umlactivity_diagram diagram contents >+### >+# Property Sheet >+ >+tab.appearance=Appearance >+tab.diagram=Rulers & Grid >+tab.domain=Core >+### >+ >Index: src/org/eclipse/uml2/diagram/activity/view/factories/OpaqueActionNameViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/OpaqueActionNameViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/OpaqueActionNameViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/OpaqueActionNameViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.BasicNodeViewFactory; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class OpaqueActionNameViewFactory extends BasicNodeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/OpaqueActionEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/OpaqueActionEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/OpaqueActionEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/OpaqueActionEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class OpaqueActionEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/DataStoreNodeViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/DataStoreNodeViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/DataStoreNodeViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/DataStoreNodeViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class DataStoreNodeViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.DataStoreNodeEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/ObjectFlowItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/ObjectFlowItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/ObjectFlowItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/ObjectFlowItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,18 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+ >+/** >+ * @generated >+ */ >+public class ObjectFlowItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req)); >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin4EditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin4EditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin4EditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/InputPin4EditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,304 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Iterator; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editparts.LayerManager; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.InputPin4ItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLExtNodeLabelHostLayoutEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InputPin4EditPart extends AbstractBorderItemEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 3007; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public InputPin4EditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy()); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new InputPin4ItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected void decorateChild(EditPart child) { >+ if (isExternalLabel(child)) { >+ return; >+ } >+ super.decorateChild(child); >+ } >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ UMLExtNodeLabelHostLayoutEditPolicy xlep = new UMLExtNodeLabelHostLayoutEditPolicy() { >+ >+ protected boolean isExternalLabel(EditPart editPart) { >+ return InputPin4EditPart.this.isExternalLabel(editPart); >+ } >+ }; >+ xlep.setRealLayoutEditPolicy(lep); >+ return xlep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ SmallSquareFigure figure = new SmallSquareFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure getPrimaryShape() { >+ return (SmallSquareFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (isExternalLabel(editPart)) { >+ return getExternalLabelsContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ //FIXME: workaround for #154536 >+ result.getBounds().setSize(result.getPreferredSize()); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(InputPinName4EditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isExternalLabel(EditPart childEditPart) { >+ if (childEditPart instanceof InputPinName4EditPart) { >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getExternalLabelsContainer() { >+ LayerManager root = (LayerManager) getRoot(); >+ return root.getLayer(UMLEditPartFactory.EXTERNAL_NODE_LABELS_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().add(labelFigure); >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void removeNotify() { >+ for (Iterator it = getChildren().iterator(); it.hasNext();) { >+ EditPart childEditPart = (EditPart) it.next(); >+ if (isExternalLabel(childEditPart)) { >+ IFigure labelFigure = ((GraphicalEditPart) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ } >+ } >+ super.removeNotify(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class SmallSquareFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public SmallSquareFigure() { >+ >+ this.setPreferredSize(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(15), getMapMode().DPtoLP(15))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/FlowFinalNodeViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/FlowFinalNodeViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/FlowFinalNodeViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/FlowFinalNodeViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class FlowFinalNodeViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.FlowFinalNodeEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin5ItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin5ItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin5ItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/InputPin5ItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class InputPin5ItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/AcceptEventActionItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/AcceptEventActionItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/AcceptEventActionItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/AcceptEventActionItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class AcceptEventActionItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPin2EditHelperAdvice.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPin2EditHelperAdvice.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPin2EditHelperAdvice.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/OutputPin2EditHelperAdvice.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,9 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice; >+ >+/** >+ * @generated >+ */ >+public class OutputPin2EditHelperAdvice extends AbstractEditHelperAdvice { >+} >Index: .project >=================================================================== >RCS file: .project >diff -N .project >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .project 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,28 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<projectDescription> >+ <name>org.eclipse.uml2.diagram.activity</name> >+ <comment></comment> >+ <projects> >+ </projects> >+ <buildSpec> >+ <buildCommand> >+ <name>org.eclipse.jdt.core.javabuilder</name> >+ <arguments> >+ </arguments> >+ </buildCommand> >+ <buildCommand> >+ <name>org.eclipse.pde.ManifestBuilder</name> >+ <arguments> >+ </arguments> >+ </buildCommand> >+ <buildCommand> >+ <name>org.eclipse.pde.SchemaBuilder</name> >+ <arguments> >+ </arguments> >+ </buildCommand> >+ </buildSpec> >+ <natures> >+ <nature>org.eclipse.jdt.core.javanature</nature> >+ <nature>org.eclipse.pde.PluginNature</nature> >+ </natures> >+</projectDescription> >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinNameEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinNameEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinNameEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/OutputPinNameEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,524 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import java.util.Collections; >+import java.util.List; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.RunnableWithResult; >+import org.eclipse.gef.AccessibleEditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.requests.DirectEditRequest; >+import org.eclipse.gef.tools.DirectEditManager; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; >+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; >+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; >+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; >+import org.eclipse.gmf.runtime.notation.FontStyle; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.jface.viewers.ICellEditorValidator; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.accessibility.AccessibleEvent; >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.uml2.diagram.activity.edit.policies.UMLTextSelectionEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+ >+/** >+ * @generated >+ */ >+public class OutputPinNameEditPart extends UMLExtNodeLabelEditPart implements ITextAwareEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 5003; >+ >+ /** >+ * @generated >+ */ >+ private DirectEditManager manager; >+ >+ /** >+ * @generated >+ */ >+ private IParser parser; >+ >+ /** >+ * @generated >+ */ >+ private List parserElements; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >+ >+ /** >+ * @generated >+ */ >+ static { >+ registerSnapBackPosition(UMLVisualIDRegistry.getType(OutputPinNameEditPart.VISUAL_ID), new Point(0, 0)); >+ } >+ >+ /** >+ * @generated >+ */ >+ public OutputPinNameEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelTextHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getText(); >+ } else { >+ return ((Label) figure).getText(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelTextHelper(IFigure figure, String text) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setText(text); >+ } else { >+ ((Label) figure).setText(text); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIconHelper(IFigure figure) { >+ if (figure instanceof WrapLabel) { >+ return ((WrapLabel) figure).getIcon(); >+ } else { >+ return ((Label) figure).getIcon(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setLabelIconHelper(IFigure figure, Image icon) { >+ if (figure instanceof WrapLabel) { >+ ((WrapLabel) figure).setIcon(icon); >+ } else { >+ ((Label) figure).setIcon(icon); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(IFigure figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = getLabelTextHelper(figure); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getParserElement() { >+ EObject element = resolveSemanticElement(); >+ return element != null ? element : (View) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Image getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ String text = null; >+ if (getParser() != null) { >+ text = getParser().getPrintString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ if (text == null || text.length() == 0) { >+ text = defaultText; >+ } >+ return text; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabelText(String text) { >+ setLabelTextHelper(getFigure(), text); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditText() { >+ if (getParser() == null) { >+ return ""; //$NON-NLS-1$ >+ } >+ return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isEditable() { >+ return getEditText() != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICellEditorValidator getEditTextValidator() { >+ return new ICellEditorValidator() { >+ >+ public String isValid(final Object value) { >+ if (value instanceof String) { >+ final EObject element = getParserElement(); >+ final IParser parser = getParser(); >+ try { >+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain().runExclusive(new RunnableWithResult.Impl() { >+ >+ public void run() { >+ setResult(parser.isValidEditString(new EObjectAdapter(element), (String) value)); >+ } >+ }); >+ return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); >+ } catch (InterruptedException ie) { >+ ie.printStackTrace(); >+ } >+ } >+ >+ // shouldn't get here >+ return null; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor() { >+ if (getParser() == null) { >+ return null; >+ } >+ return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); >+ } >+ >+ /** >+ * @generated >+ */ >+ public ParserOptions getParserOptions() { >+ return ParserOptions.NONE; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IParser getParser() { >+ if (parser == null) { >+ String parserHint = ((View) getModel()).getType(); >+ ParserHintAdapter hintAdapter = new ParserHintAdapter(getParserElement(), parserHint) { >+ >+ public Object getAdapter(Class adapter) { >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.OutputPin_3001; >+ } >+ return super.getAdapter(adapter); >+ } >+ }; >+ parser = ParserService.getInstance().getParser(hintAdapter); >+ } >+ return parser; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected DirectEditManager getManager() { >+ if (manager == null) { >+ setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), UMLEditPartFactory.getTextCellEditorLocator(this))); >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setManager(DirectEditManager manager) { >+ this.manager = manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit(Point eventLocation) { >+ if (getManager().getClass() == TextDirectEditManager.class) { >+ ((TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void performDirectEdit(char initialCharacter) { >+ if (getManager() instanceof TextDirectEditManager) { >+ ((TextDirectEditManager) getManager()).show(initialCharacter); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEditRequest(Request request) { >+ final Request theRequest = request; >+ try { >+ getEditingDomain().runExclusive(new Runnable() { >+ >+ public void run() { >+ if (isActive() && isEditable()) { >+ if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) { >+ Character initialChar = (Character) theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); >+ performDirectEdit(initialChar.charValue()); >+ } else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) { >+ DirectEditRequest editRequest = (DirectEditRequest) theRequest; >+ performDirectEdit(editRequest.getLocation()); >+ } else { >+ performDirectEdit(); >+ } >+ } >+ } >+ }); >+ } catch (InterruptedException e) { >+ e.printStackTrace(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshUnderline(); >+ refreshStrikeThrough(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ setLabelTextHelper(getFigure(), getLabelText()); >+ setLabelIconHelper(getFigure(), getLabelIcon()); >+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (pdEditPolicy instanceof UMLTextSelectionEditPolicy) { >+ ((UMLTextSelectionEditPolicy) pdEditPolicy).refreshFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshUnderline() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextUnderline(style.isUnderline()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshStrikeThrough() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null && getFigure() instanceof WrapLabel) { >+ ((WrapLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); >+ if (style != null) { >+ FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); >+ setFont(fontData); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setFontColor(Color color) { >+ getFigure().setForegroundColor(color); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addSemanticListeners() { >+ if (getParser() instanceof ISemanticParser) { >+ EObject element = resolveSemanticElement(); >+ parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element); >+ for (int i = 0; i < parserElements.size(); i++) { >+ addListenerFilter("SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$ >+ } >+ } else { >+ super.addSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeSemanticListeners() { >+ if (parserElements != null) { >+ for (int i = 0; i < parserElements.size(); i++) { >+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ >+ } >+ } else { >+ super.removeSemanticListeners(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected AccessibleEditPart getAccessibleEditPart() { >+ if (accessibleEP == null) { >+ accessibleEP = new AccessibleGraphicalEditPart() { >+ >+ public void getName(AccessibleEvent e) { >+ e.result = getLabelTextHelper(getFigure()); >+ } >+ }; >+ } >+ return accessibleEP; >+ } >+ >+ /** >+ * @generated >+ */ >+ private View getFontStyleOwnerView() { >+ return getPrimaryView(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void handleNotificationEvent(Notification event) { >+ Object feature = event.getFeature(); >+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) { >+ Integer c = (Integer) event.getNewValue(); >+ setFontColor(DiagramColorRegistry.getInstance().getColor(c)); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) { >+ refreshUnderline(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) { >+ refreshStrikeThrough(); >+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) >+ || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) { >+ refreshFont(); >+ } else { >+ if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) { >+ refreshLabel(); >+ } >+ if (getParser() instanceof ISemanticParser) { >+ ISemanticParser modelParser = (ISemanticParser) getParser(); >+ if (modelParser.areSemanticElementsAffected(null, event)) { >+ removeSemanticListeners(); >+ if (resolveSemanticElement() != null) { >+ addSemanticListeners(); >+ } >+ refreshLabel(); >+ } >+ } >+ } >+ super.handleNotificationEvent(event); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ IFigure label = createFigurePrim(); >+ defaultText = getLabelTextHelper(label); >+ return label; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigurePrim() { >+ return new WrapLabel(); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorContentProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorContentProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorContentProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorContentProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,856 @@ >+package org.eclipse.uml2.diagram.activity.navigator; >+ >+import java.util.ArrayList; >+import java.util.Collection; >+import java.util.HashMap; >+import java.util.HashSet; >+import java.util.Iterator; >+import java.util.List; >+import java.util.Set; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.emf.common.util.URI; >+import org.eclipse.emf.ecore.resource.Resource; >+import org.eclipse.emf.ecore.resource.ResourceSet; >+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; >+import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory; >+import org.eclipse.gmf.runtime.notation.Edge; >+import org.eclipse.gmf.runtime.notation.Node; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.viewers.Viewer; >+import org.eclipse.ui.IMemento; >+import org.eclipse.ui.navigator.ICommonContentExtensionSite; >+import org.eclipse.ui.navigator.ICommonContentProvider; >+import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventAction2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityFinalNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CentralBufferNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ControlFlowEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.DataStoreNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.DecisionNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.FlowFinalNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ForkNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InitialNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin5EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.JoinNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.MergeNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ObjectFlowEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.PinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.StructuredActivityNodeEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class UMLNavigatorContentProvider implements ICommonContentProvider { >+ >+ /** >+ * @generated >+ */ >+ private static final Object[] EMPTY_ARRAY = new Object[0]; >+ >+ /** >+ * @generated >+ */ >+ public void dispose() { >+ } >+ >+ /** >+ * @generated >+ */ >+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object[] getElements(Object inputElement) { >+ return getChildren(inputElement); >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object[] getChildren(Object parentElement) { >+ if (parentElement instanceof UMLAbstractNavigatorItem) { >+ UMLAbstractNavigatorItem abstractNavigatorItem = (UMLAbstractNavigatorItem) parentElement; >+ if (!ActivityEditPart.MODEL_ID.equals(abstractNavigatorItem.getModelID())) { >+ return EMPTY_ARRAY; >+ } >+ >+ if (abstractNavigatorItem instanceof UMLNavigatorItem) { >+ UMLNavigatorItem navigatorItem = (UMLNavigatorItem) abstractNavigatorItem; >+ switch (navigatorItem.getVisualID()) { >+ case AcceptEventActionEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case AcceptEventAction2EditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case ActivityFinalNodeEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case DecisionNodeEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case MergeNodeEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case InitialNodeEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case StructuredActivityNodeEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case DataStoreNodeEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case CentralBufferNodeEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case OpaqueActionEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(OutputPinEditPart.VISUAL_ID), navigatorItem)); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case FlowFinalNodeEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case ForkNodeEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case JoinNodeEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case PinEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case CreateObjectActionEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(OutputPin2EditPart.VISUAL_ID), navigatorItem)); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case AddStructuralFeatureValueActionEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(InputPinEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(InputPin2EditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(InputPin3EditPart.VISUAL_ID), navigatorItem)); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case CallBehaviorActionEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(OutputPin3EditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(InputPin4EditPart.VISUAL_ID), navigatorItem)); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case CallOperationActionEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(OutputPin3EditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(InputPin4EditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(InputPin5EditPart.VISUAL_ID), navigatorItem)); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case OutputPinEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case OutputPin2EditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case InputPinEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case InputPin2EditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case InputPin3EditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case OutputPin3EditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case InputPin4EditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case InputPin5EditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup incominglinks = new UMLNavigatorGroup("incoming links", "icons/incomingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), false, incominglinks)); >+ UMLNavigatorGroup outgoinglinks = new UMLNavigatorGroup("outgoing links", "icons/outgoingLinksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ incominglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), false, incominglinks)); >+ outgoinglinks.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), true, outgoinglinks)); >+ if (!outgoinglinks.isEmpty()) { >+ result.add(outgoinglinks); >+ } >+ if (!incominglinks.isEmpty()) { >+ result.add(incominglinks); >+ } >+ return result.toArray(); >+ } >+ case ActivityEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(AcceptEventActionEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(AcceptEventAction2EditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(ActivityFinalNodeEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(DecisionNodeEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(MergeNodeEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(InitialNodeEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(StructuredActivityNodeEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(DataStoreNodeEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(CentralBufferNodeEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(OpaqueActionEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(FlowFinalNodeEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(ForkNodeEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(JoinNodeEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(PinEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(CreateObjectActionEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(AddStructuralFeatureValueActionEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(CallBehaviorActionEditPart.VISUAL_ID), navigatorItem)); >+ result.addAll(getChildByType(navigatorItem.getView().getChildren(), UMLVisualIDRegistry.getType(CallOperationActionEditPart.VISUAL_ID), navigatorItem)); >+ UMLNavigatorGroup links = new UMLNavigatorGroup("links", "icons/linksNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ links.addChildren(getViewByType(navigatorItem.getView().getDiagram().getEdges(), UMLVisualIDRegistry.getType(ControlFlowEditPart.VISUAL_ID), links)); >+ links.addChildren(getViewByType(navigatorItem.getView().getDiagram().getEdges(), UMLVisualIDRegistry.getType(ObjectFlowEditPart.VISUAL_ID), links)); >+ if (!links.isEmpty()) { >+ result.add(links); >+ } >+ return result.toArray(); >+ } >+ case ControlFlowEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup target = new UMLNavigatorGroup("target", "icons/linkTargetNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AcceptEventActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AcceptEventAction2EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ActivityFinalNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(DecisionNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(MergeNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InitialNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(StructuredActivityNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(DataStoreNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CentralBufferNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OpaqueActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(FlowFinalNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ForkNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(JoinNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(PinEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CreateObjectActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AddStructuralFeatureValueActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CallBehaviorActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CallOperationActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPinEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPin2EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPinEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin2EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin3EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPin3EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin4EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin5EditPart.VISUAL_ID), true, target)); >+ UMLNavigatorGroup source = new UMLNavigatorGroup("source", "icons/linkSourceNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AcceptEventActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AcceptEventAction2EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ActivityFinalNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(DecisionNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(MergeNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InitialNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(StructuredActivityNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(DataStoreNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CentralBufferNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OpaqueActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(FlowFinalNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ForkNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(JoinNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(PinEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CreateObjectActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AddStructuralFeatureValueActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CallBehaviorActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CallOperationActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPinEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPin2EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPinEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin2EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin3EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPin3EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin4EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin5EditPart.VISUAL_ID), false, source)); >+ if (!target.isEmpty()) { >+ result.add(target); >+ } >+ if (!source.isEmpty()) { >+ result.add(source); >+ } >+ return result.toArray(); >+ } >+ case ObjectFlowEditPart.VISUAL_ID: { >+ Collection result = new ArrayList(); >+ UMLNavigatorGroup target = new UMLNavigatorGroup("target", "icons/linkTargetNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AcceptEventActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AcceptEventAction2EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ActivityFinalNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(DecisionNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(MergeNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InitialNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(StructuredActivityNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(DataStoreNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CentralBufferNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OpaqueActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(FlowFinalNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ForkNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(JoinNodeEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(PinEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CreateObjectActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AddStructuralFeatureValueActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CallBehaviorActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CallOperationActionEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPinEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPin2EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPinEditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin2EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin3EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPin3EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin4EditPart.VISUAL_ID), true, target)); >+ target.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin5EditPart.VISUAL_ID), true, target)); >+ UMLNavigatorGroup source = new UMLNavigatorGroup("source", "icons/linkSourceNavigatorGroup.gif", ActivityEditPart.MODEL_ID, navigatorItem); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AcceptEventActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AcceptEventAction2EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ActivityFinalNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(DecisionNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(MergeNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InitialNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(StructuredActivityNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(DataStoreNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CentralBufferNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OpaqueActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(FlowFinalNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(ForkNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(JoinNodeEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(PinEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CreateObjectActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(AddStructuralFeatureValueActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CallBehaviorActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(CallOperationActionEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPinEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPin2EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPinEditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin2EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin3EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(OutputPin3EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin4EditPart.VISUAL_ID), false, source)); >+ source.addChildren(getConnectedViews(navigatorItem.getView(), UMLVisualIDRegistry.getType(InputPin5EditPart.VISUAL_ID), false, source)); >+ if (!target.isEmpty()) { >+ result.add(target); >+ } >+ if (!source.isEmpty()) { >+ result.add(source); >+ } >+ return result.toArray(); >+ } >+ } >+ } else if (abstractNavigatorItem instanceof UMLNavigatorGroup) { >+ UMLNavigatorGroup group = (UMLNavigatorGroup) parentElement; >+ return group.getChildren(); >+ } >+ } else if (parentElement instanceof IFile) { >+ IFile file = (IFile) parentElement; >+ AdapterFactoryEditingDomain editingDomain = (AdapterFactoryEditingDomain) GMFEditingDomainFactory.INSTANCE.createEditingDomain(); >+ editingDomain.setResourceToReadOnlyMap(new HashMap() { >+ >+ public Object get(Object key) { >+ if (!containsKey(key)) { >+ put(key, Boolean.TRUE); >+ } >+ return super.get(key); >+ } >+ }); >+ ResourceSet resourceSet = editingDomain.getResourceSet(); >+ >+ URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString()); >+ Resource resource = resourceSet.getResource(fileURI, true); >+ >+ Collection result = new ArrayList(); >+ result.addAll(getViewByType(resource.getContents(), ActivityEditPart.MODEL_ID, file)); >+ return result.toArray(); >+ } >+ return EMPTY_ARRAY; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object getParent(Object element) { >+ if (element instanceof UMLAbstractNavigatorItem) { >+ UMLAbstractNavigatorItem abstractNavigatorItem = (UMLAbstractNavigatorItem) element; >+ if (!ActivityEditPart.MODEL_ID.equals(abstractNavigatorItem.getModelID())) { >+ return null; >+ } >+ return abstractNavigatorItem.getParent(); >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean hasChildren(Object element) { >+ return element instanceof IFile || getChildren(element).length > 0; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void init(ICommonContentExtensionSite aConfig) { >+ } >+ >+ /** >+ * @generated >+ */ >+ public void restoreState(IMemento aMemento) { >+ } >+ >+ /** >+ * @generated >+ */ >+ public void saveState(IMemento aMemento) { >+ } >+ >+ /** >+ * @generated >+ */ >+ private Collection getViewByType(Collection childViews, String type, Object parent) { >+ Collection result = new ArrayList(); >+ for (Iterator it = childViews.iterator(); it.hasNext();) { >+ Object next = it.next(); >+ if (false == next instanceof View) { >+ continue; >+ } >+ View nextView = (View) next; >+ if (type.equals(nextView.getType())) { >+ result.add(new UMLNavigatorItem(nextView, parent)); >+ } >+ } >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private Collection getChildByType(Collection childViews, String type, Object parent) { >+ Collection result = new ArrayList(); >+ List children = new ArrayList(childViews); >+ for (int i = 0; i < children.size(); i++) { >+ if (false == children.get(i) instanceof View) { >+ continue; >+ } >+ View nextChild = (View) children.get(i); >+ if (type.equals(nextChild.getType())) { >+ result.add(new UMLNavigatorItem(nextChild, parent)); >+ } else if (!stopGettingChildren(nextChild, type)) { >+ children.addAll(nextChild.getChildren()); >+ } >+ } >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean stopGettingChildren(View child, String type) { >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ private Collection getConnectedViews(View rootView, String type, boolean isOutTarget, Object parent) { >+ Collection result = new ArrayList(); >+ List connectedViews = new ArrayList(); >+ connectedViews.add(rootView); >+ Set visitedViews = new HashSet(); >+ for (int i = 0; i < connectedViews.size(); i++) { >+ View nextView = (View) connectedViews.get(i); >+ if (visitedViews.contains(nextView)) { >+ continue; >+ } >+ visitedViews.add(nextView); >+ if (type.equals(nextView.getType()) && nextView != rootView) { >+ result.add(new UMLNavigatorItem(nextView, parent)); >+ } else { >+ if (isOutTarget && !stopGettingOutTarget(nextView, rootView, type)) { >+ connectedViews.addAll(nextView.getSourceEdges()); >+ if (nextView instanceof Edge) { >+ connectedViews.add(((Edge) nextView).getTarget()); >+ } >+ } >+ if (!isOutTarget && !stopGettingInSource(nextView, rootView, type)) { >+ connectedViews.addAll(nextView.getTargetEdges()); >+ if (nextView instanceof Edge) { >+ connectedViews.add(((Edge) nextView).getSource()); >+ } >+ } >+ } >+ } >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean stopGettingInSource(View nextView, View rootView, String type) { >+ return !isOneHopConnection(nextView, rootView); >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean stopGettingOutTarget(View nextView, View rootView, String type) { >+ return !isOneHopConnection(nextView, rootView); >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean isOneHopConnection(View targetView, View sourceView) { >+ if (sourceView == targetView) { >+ return true; >+ } >+ if (sourceView instanceof Node) { >+ return targetView instanceof Edge; >+ } >+ if (sourceView instanceof Edge) { >+ return targetView instanceof Node; >+ } >+ return false; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/DataStoreNodeEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/DataStoreNodeEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/DataStoreNodeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/DataStoreNodeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,246 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.DataStoreNodeItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class DataStoreNodeEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2008; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public DataStoreNodeEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new DataStoreNodeItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ DataStoreFigure figure = new DataStoreFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public DataStoreFigure getPrimaryShape() { >+ return (DataStoreFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class DataStoreFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public DataStoreFigure() { >+ >+ org.eclipse.draw2d.BorderLayout myGenLayoutManager = new org.eclipse.draw2d.BorderLayout(); >+ >+ this.setLayoutManager(myGenLayoutManager); >+ >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel(); >+ fig_0.setText("\u00ABdatastore\u00BB"); >+ >+ setFigureDataStore_fixed_datastore(fig_0); >+ >+ Object layData0 = org.eclipse.draw2d.BorderLayout.TOP; >+ >+ this.add(fig_0, layData0); >+ org.eclipse.draw2d.RectangleFigure fig_1 = new org.eclipse.draw2d.RectangleFigure(); >+ fig_1.setFill(false); >+ fig_1.setOutline(false); >+ >+ setFigureDataStoreFigure_ContentPane(fig_1); >+ >+ Object layData1 = org.eclipse.draw2d.BorderLayout.CENTER; >+ >+ this.add(fig_1, layData1); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fDataStore_fixed_datastore; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureDataStore_fixed_datastore() { >+ return fDataStore_fixed_datastore; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureDataStore_fixed_datastore(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) { >+ fDataStore_fixed_datastore = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.RectangleFigure fDataStoreFigure_ContentPane; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.draw2d.RectangleFigure getFigureDataStoreFigure_ContentPane() { >+ return fDataStoreFigure_ContentPane; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureDataStoreFigure_ContentPane(org.eclipse.draw2d.RectangleFigure fig) { >+ fDataStoreFigure_ContentPane = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/PinEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/PinEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/PinEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/PinEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,270 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.PinItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class PinEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2014; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public PinEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new PinItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ StandalonePinFigure figure = new StandalonePinFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public StandalonePinFigure getPrimaryShape() { >+ return (StandalonePinFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean addFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof PinNameEditPart) { >+ ((PinNameEditPart) childEditPart).setLabel(getPrimaryShape().getFigureStandalonePinFigure_name()); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean removeFixedChild(EditPart childEditPart) { >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(70), getMapMode().DPtoLP(40)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(PinNameEditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (addFixedChild(childEditPart)) { >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (removeFixedChild(childEditPart)) { >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class StandalonePinFigure extends org.eclipse.draw2d.RectangleFigure { >+ >+ /** >+ * @generated >+ */ >+ public StandalonePinFigure() { >+ >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel(); >+ >+ fig_0.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(0), getMapMode().DPtoLP(5), getMapMode().DPtoLP(0), getMapMode().DPtoLP(5))); >+ >+ setFigureStandalonePinFigure_name(fig_0); >+ >+ Object layData0 = null; >+ >+ this.add(fig_0, layData0); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fStandalonePinFigure_name; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureStandalonePinFigure_name() { >+ return fStandalonePinFigure_name; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureStandalonePinFigure_name(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) { >+ fStandalonePinFigure_name = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: icons/linkSourceNavigatorGroup.gif >=================================================================== >RCS file: icons/linkSourceNavigatorGroup.gif >diff -N icons/linkSourceNavigatorGroup.gif >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ icons/linkSourceNavigatorGroup.gif 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+GIF89aÕÿÿr/GøØf'øÐxøàøÐf>2èÆøè°èÐøðÈÿÿÿÃ6úöºøà øØ?]FøèÒ«üößãϹ´2àÀxr+ðØ?¥l$yO@_l$?R¼2ï߯¼ 2à 6!ù,s@pH,?È#âèh:¨T0ô4® >+à?p©Ñd¢Y`B¡p8G AØ%%HÁçW¶ _B???B¥¦¥ B®©C³´µI·¸FA;Content-Type: image/gif >+ >+GIF89aÕÿÿr/GøØf'øÐxøàøÐf>2èÆøè°èÐøðÈÿÿÿÃ6úöºøà øØ?]FøèÒ«üößãϹ´2àÀxr+ðØ?¥l$yO@_l$?R¼2ï߯¼ 2à 6!ù,s@pH,?È#âèh:¨T0ô4® >+à?p©Ñd¢Y`B¡p8G AØ%%HÁçW¶ _B???B¥¦¥ B®©C³´µI·¸FA; >Index: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPin2ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/OutputPin2ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/OutputPin2ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/OutputPin2ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName2EditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class OutputPin2ViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.OutputPin2EditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(OutputPinName2EditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/providers/UMLAbstractParser.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/providers/UMLAbstractParser.java >diff -N src/org/eclipse/uml2/diagram/activity/providers/UMLAbstractParser.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/providers/UMLAbstractParser.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,377 @@ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import java.text.MessageFormat; >+import java.text.ParsePosition; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EClassifier; >+import org.eclipse.emf.ecore.EDataType; >+import org.eclipse.emf.ecore.EEnum; >+import org.eclipse.emf.ecore.EEnumLiteral; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.ecore.EStructuralFeature; >+import org.eclipse.gmf.runtime.common.core.command.ICommand; >+import org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest; >+import org.eclipse.jface.text.contentassist.IContentAssistProcessor; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin; >+ >+/** >+ * @generated >+ */ >+public abstract class UMLAbstractParser implements IParser { >+ >+ /** >+ * @generated >+ */ >+ private String viewPattern; >+ >+ /** >+ * @generated >+ */ >+ private MessageFormat viewProcessor; >+ >+ /** >+ * @generated >+ */ >+ private String editPattern; >+ >+ /** >+ * @generated >+ */ >+ private MessageFormat editProcessor; >+ >+ /** >+ * @generated >+ */ >+ public String getViewPattern() { >+ return viewPattern; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected MessageFormat getViewProcessor() { >+ return viewProcessor; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setViewPattern(String viewPattern) { >+ this.viewPattern = viewPattern; >+ viewProcessor = createViewProcessor(viewPattern); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected MessageFormat createViewProcessor(String viewPattern) { >+ return new MessageFormat(viewPattern); >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditPattern() { >+ return editPattern; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected MessageFormat getEditProcessor() { >+ return editProcessor; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setEditPattern(String editPattern) { >+ this.editPattern = editPattern; >+ editProcessor = createEditProcessor(editPattern); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected MessageFormat createEditProcessor(String editPattern) { >+ return new MessageFormat(editPattern); >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getPrintString(IAdaptable adapter, int flags) { >+ return getStringByPattern(adapter, flags, getViewPattern(), getViewProcessor()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getEditString(IAdaptable adapter, int flags) { >+ return getStringByPattern(adapter, flags, getEditPattern(), getEditProcessor()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected abstract String getStringByPattern(IAdaptable adapter, int flags, String pattern, MessageFormat processor); >+ >+ /** >+ * @generated >+ */ >+ public IParserEditStatus isValidEditString(IAdaptable element, String editString) { >+ ParsePosition pos = new ParsePosition(0); >+ Object[] values = getEditProcessor().parse(editString, pos); >+ if (values == null) { >+ return new ParserEditStatus(UMLDiagramEditorPlugin.ID, IParserEditStatus.UNEDITABLE, "Invalid input at " + pos.getErrorIndex()); >+ } >+ return validateNewValues(values); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParserEditStatus validateNewValues(Object[] values) { >+ return ParserEditStatus.EDITABLE_STATUS; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICommand getParseCommand(IAdaptable adapter, String newString, int flags) { >+ Object[] values = getEditProcessor().parse(newString, new ParsePosition(0)); >+ if (values == null || validateNewValues(values).getCode() != IParserEditStatus.EDITABLE) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return getParseCommand(adapter, values); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected abstract ICommand getParseCommand(IAdaptable adapter, Object[] values); >+ >+ /** >+ * @generated >+ */ >+ public IContentAssistProcessor getCompletionProcessor(IAdaptable element) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected ICommand getModificationCommand(EObject element, EStructuralFeature feature, Object value) { >+ value = getValidNewValue(feature, value); >+ if (value instanceof InvalidValue) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ SetRequest request = new SetRequest(element, feature, value); >+ return new SetValueCommand(request); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Object getValidValue(EStructuralFeature feature, Object value) { >+ EClassifier type = feature.getEType(); >+ if (type instanceof EDataType) { >+ Class iClass = type.getInstanceClass(); >+ if (String.class.equals(iClass)) { >+ if (value == null) { >+ value = ""; //$NON-NLS-1$ >+ } >+ } >+ } >+ return value; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Object getValidNewValue(EStructuralFeature feature, Object value) { >+ EClassifier type = feature.getEType(); >+ if (type instanceof EDataType) { >+ Class iClass = type.getInstanceClass(); >+ if (Boolean.TYPE.equals(iClass)) { >+ if (value instanceof Boolean) { >+ // ok >+ } else if (value instanceof String) { >+ value = Boolean.valueOf((String) value); >+ } else { >+ value = new InvalidValue("Value of type Boolean is expected"); >+ } >+ } else if (Character.TYPE.equals(iClass)) { >+ if (value instanceof Character) { >+ // ok >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ value = new Character(s.charAt(0)); >+ } >+ } else { >+ value = new InvalidValue("Value of type Character is expected"); >+ } >+ } else if (Byte.TYPE.equals(iClass)) { >+ if (value instanceof Byte) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Byte(((Number) value).byteValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Byte.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ value = new InvalidValue("String value does not convert to Byte value"); >+ } >+ } >+ } else { >+ value = new InvalidValue("Value of type Byte is expected"); >+ } >+ } else if (Short.TYPE.equals(iClass)) { >+ if (value instanceof Short) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Short(((Number) value).shortValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Short.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ value = new InvalidValue("String value does not convert to Short value"); >+ } >+ } >+ } else { >+ value = new InvalidValue("Value of type Short is expected"); >+ } >+ } else if (Integer.TYPE.equals(iClass)) { >+ if (value instanceof Integer) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Integer(((Number) value).intValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Integer.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ value = new InvalidValue("String value does not convert to Integer value"); >+ } >+ } >+ } else { >+ value = new InvalidValue("Value of type Integer is expected"); >+ } >+ } else if (Long.TYPE.equals(iClass)) { >+ if (value instanceof Long) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Long(((Number) value).longValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Long.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ value = new InvalidValue("String value does not convert to Long value"); >+ } >+ } >+ } else { >+ value = new InvalidValue("Value of type Long is expected"); >+ } >+ } else if (Float.TYPE.equals(iClass)) { >+ if (value instanceof Float) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Float(((Number) value).floatValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Float.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ value = new InvalidValue("String value does not convert to Float value"); >+ } >+ } >+ } else { >+ value = new InvalidValue("Value of type Float is expected"); >+ } >+ } else if (Double.TYPE.equals(iClass)) { >+ if (value instanceof Double) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Double(((Number) value).doubleValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Double.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ value = new InvalidValue("String value does not convert to Double value"); >+ } >+ } >+ } else { >+ value = new InvalidValue("Value of type Double is expected"); >+ } >+ } else if (type instanceof EEnum) { >+ if (value instanceof String) { >+ EEnumLiteral literal = ((EEnum) type).getEEnumLiteralByLiteral((String) value); >+ if (literal == null) { >+ value = new InvalidValue("Unknown literal: " + value); >+ } else { >+ value = literal.getInstance(); >+ } >+ } else { >+ value = new InvalidValue("Value of type String is expected"); >+ } >+ } >+ } >+ return value; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected class InvalidValue { >+ >+ /** >+ * @generated >+ */ >+ private String description; >+ >+ /** >+ * @generated >+ */ >+ public InvalidValue(String description) { >+ this.description = description; >+ } >+ >+ /** >+ * @generated >+ */ >+ public String toString() { >+ return description; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InitialNodeViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InitialNodeViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InitialNodeViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InitialNodeViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InitialNodeViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.InitialNodeEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/providers/UMLPaletteProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/providers/UMLPaletteProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/providers/UMLPaletteProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/providers/UMLPaletteProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import java.util.Map; >+ >+import org.eclipse.core.runtime.IConfigurationElement; >+import org.eclipse.gef.palette.PaletteRoot; >+import org.eclipse.gmf.runtime.common.core.service.AbstractProvider; >+import org.eclipse.gmf.runtime.common.core.service.IOperation; >+import org.eclipse.gmf.runtime.diagram.ui.services.palette.IPaletteProvider; >+import org.eclipse.ui.IEditorPart; >+import org.eclipse.uml2.diagram.activity.part.UMLPaletteFactory; >+ >+/** >+ * @generated >+ */ >+public class UMLPaletteProvider extends AbstractProvider implements IPaletteProvider { >+ >+ /** >+ * @generated >+ */ >+ public void contributeToPalette(IEditorPart editor, Object content, PaletteRoot root, Map predefinedEntries) { >+ UMLPaletteFactory factory = new UMLPaletteFactory(); >+ factory.fillPalette(root); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setContributions(IConfigurationElement configElement) { >+ // no configuration >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean provides(IOperation operation) { >+ return false; // all logic is done in the service >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/ActivityFinalNodeEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/ActivityFinalNodeEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/ActivityFinalNodeEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/ActivityFinalNodeEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class ActivityFinalNodeEditHelper extends UMLBaseEditHelper { >+} >Index: .cvsignore >=================================================================== >RCS file: .cvsignore >diff -N .cvsignore >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .cvsignore 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,2 @@ >+bin >+.settings >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/ObjectFlowEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/ObjectFlowEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/ObjectFlowEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/ObjectFlowEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,79 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.Connection; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.ObjectFlowItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class ObjectFlowEditPart extends ConnectionNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 4002; >+ >+ /** >+ * @generated >+ */ >+ public ObjectFlowEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new ObjectFlowItemSemanticEditPolicy()); >+ >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected Connection createConnectionFigure() { >+ return new ActivityEdgeConnection(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ActivityEdgeConnection extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx { >+ >+ /** >+ * @generated >+ */ >+ public ActivityEdgeConnection() { >+ this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black); >+ setTargetDecoration(createTargetDecoration()); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.PolylineDecoration createTargetDecoration() { >+ org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration(); >+ // dispatchNext? >+ >+ org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList(); >+ pl.addPoint(-2, -1); >+ pl.addPoint(0, 0); >+ pl.addPoint(-2, 1); >+ df.setTemplate(pl); >+ df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3)); >+ >+ return df; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/InputPinItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/InputPinItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/InputPinItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/InputPinItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class InputPinItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/expressions/UMLOCLFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/expressions/UMLOCLFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/expressions/UMLOCLFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/expressions/UMLOCLFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,176 @@ >+package org.eclipse.uml2.diagram.activity.expressions; >+ >+import java.util.Collections; >+import java.util.Iterator; >+import java.util.Map; >+ >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.emf.ecore.EClassifier; >+import org.eclipse.emf.ecore.EEnum; >+import org.eclipse.emf.ecore.EEnumLiteral; >+import org.eclipse.emf.ecore.ETypedElement; >+import org.eclipse.emf.ocl.expressions.ExpressionsFactory; >+import org.eclipse.emf.ocl.expressions.OCLExpression; >+import org.eclipse.emf.ocl.expressions.OperationCallExp; >+import org.eclipse.emf.ocl.expressions.Variable; >+import org.eclipse.emf.ocl.expressions.util.AbstractVisitor; >+import org.eclipse.emf.ocl.helper.HelperUtil; >+import org.eclipse.emf.ocl.helper.IOCLHelper; >+import org.eclipse.emf.ocl.helper.OCLParsingException; >+import org.eclipse.emf.ocl.parser.EcoreEnvironment; >+import org.eclipse.emf.ocl.parser.EcoreEnvironmentFactory; >+import org.eclipse.emf.ocl.parser.Environment; >+import org.eclipse.emf.ocl.parser.EvaluationEnvironment; >+import org.eclipse.emf.ocl.query.Query; >+import org.eclipse.emf.ocl.query.QueryFactory; >+import org.eclipse.emf.ocl.types.util.Types; >+import org.eclipse.emf.ocl.utilities.PredefinedType; >+ >+/** >+ * @generated >+ */ >+public class UMLOCLFactory { >+ >+ /** >+ * @generated >+ */ >+ private UMLOCLFactory() { >+ } >+ >+ /** >+ * @generated >+ */ >+ public static UMLAbstractExpression getExpression(String body, EClassifier context, Map environment) { >+ return new Expression(body, context, environment); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static UMLAbstractExpression getExpression(String body, EClassifier context) { >+ return getExpression(body, context, Collections.EMPTY_MAP); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class Expression extends UMLAbstractExpression { >+ >+ /** >+ * @generated >+ */ >+ private Query query; >+ >+ /** >+ * @generated >+ */ >+ public Expression(String body, EClassifier context, Map environment) { >+ super(body, context, environment); >+ >+ IOCLHelper oclHelper = (environment.isEmpty()) ? HelperUtil.createOCLHelper() : HelperUtil.createOCLHelper(createCustomEnv(environment)); >+ oclHelper.setContext(context()); >+ try { >+ OCLExpression oclExpression = oclHelper.createQuery(body); >+ this.query = QueryFactory.eINSTANCE.createQuery(oclExpression); >+ } catch (OCLParsingException e) { >+ setStatus(IStatus.ERROR, e.getMessage(), e); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Object doEvaluate(Object context, Map env) { >+ if (query == null) { >+ return null; >+ } >+ EvaluationEnvironment evalEnv = query.getEvaluationEnvironment(); >+ // init environment >+ for (Iterator it = env.entrySet().iterator(); it.hasNext();) { >+ Map.Entry nextEntry = (Map.Entry) it.next(); >+ evalEnv.replace((String) nextEntry.getKey(), nextEntry.getValue()); >+ } >+ >+ try { >+ initExtentMap(context); >+ Object result = query.evaluate(context); >+ return (result != Types.OCL_INVALID) ? result : null; >+ } finally { >+ evalEnv.clear(); >+ query.setExtentMap(Collections.EMPTY_MAP); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Object performCast(Object value, ETypedElement targetType) { >+ if (targetType.getEType() instanceof EEnum) { >+ if (value instanceof EEnumLiteral) { >+ EEnumLiteral literal = (EEnumLiteral) value; >+ return (literal.getInstance() != null) ? literal.getInstance() : literal; >+ } >+ } >+ return super.performCast(value, targetType); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void initExtentMap(Object context) { >+ if (query == null || context == null) { >+ return; >+ } >+ final Query queryToInit = query; >+ final Object extentContext = context; >+ >+ queryToInit.setExtentMap(Collections.EMPTY_MAP); >+ if (queryToInit.queryText() != null && queryToInit.queryText().indexOf("allInstances") >= 0) { >+ AbstractVisitor visitior = new AbstractVisitor() { >+ >+ private boolean usesAllInstances = false; >+ >+ public Object visitOperationCallExp(OperationCallExp oc) { >+ if (!usesAllInstances) { >+ usesAllInstances = PredefinedType.ALL_INSTANCES == oc.getOperationCode(); >+ if (usesAllInstances) { >+ queryToInit.setExtentMap(EcoreEnvironmentFactory.ECORE_INSTANCE.createExtentMap(extentContext)); >+ } >+ } >+ return super.visitOperationCallExp(oc); >+ } >+ }; >+ queryToInit.getExpression().accept(visitior); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static EcoreEnvironmentFactory createCustomEnv(Map environment) { >+ final Map env = environment; >+ return new EcoreEnvironmentFactory() { >+ >+ public Environment createClassifierContext(Object context) { >+ Environment ecoreEnv = super.createClassifierContext(context); >+ for (Iterator it = env.keySet().iterator(); it.hasNext();) { >+ String varName = (String) it.next(); >+ EClassifier varType = (EClassifier) env.get(varName); >+ ecoreEnv.addElement(varName, createVar(varName, varType), false); >+ } >+ return ecoreEnv; >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ private static Variable createVar(String name, EClassifier type) { >+ Variable var = ExpressionsFactory.eINSTANCE.createVariable(); >+ var.setName(name); >+ var.setType(EcoreEnvironment.getOCLType(type)); >+ return var; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/navigator/UMLAbstractNavigatorItem.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/navigator/UMLAbstractNavigatorItem.java >diff -N src/org/eclipse/uml2/diagram/activity/navigator/UMLAbstractNavigatorItem.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/navigator/UMLAbstractNavigatorItem.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,51 @@ >+package org.eclipse.uml2.diagram.activity.navigator; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.ui.properties.views.IReadOnlyDiagramPropertySheetPageContributor; >+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor; >+ >+/** >+ * @generated >+ */ >+public abstract class UMLAbstractNavigatorItem implements IAdaptable { >+ >+ /** >+ * @generated >+ */ >+ private Object myParent; >+ >+ /** >+ * @generated >+ */ >+ protected UMLAbstractNavigatorItem(Object parent) { >+ myParent = parent; >+ } >+ >+ /** >+ * @generated >+ */ >+ abstract public String getModelID(); >+ >+ /** >+ * @generated >+ */ >+ public Object getParent() { >+ return myParent; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object getAdapter(Class adapter) { >+ if (ITabbedPropertySheetPageContributor.class.isAssignableFrom(adapter)) { >+ return new ITabbedPropertySheetPageContributor() { >+ >+ public String getContributorId() { >+ return "org.eclipse.uml2.diagram.activity"; >+ } >+ }; >+ } >+ return null; >+ } >+ >+} >Index: icons/outgoingLinksNavigatorGroup.gif >=================================================================== >RCS file: icons/outgoingLinksNavigatorGroup.gif >diff -N icons/outgoingLinksNavigatorGroup.gif >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ icons/outgoingLinksNavigatorGroup.gif 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+GIF89aÕÿÿr/GøØf'øÐxøàøÐf>2èÆøè°èÐøðÈÿÿÿÃ6úöºøà øØ?]FøèÒ«üößãϹ´2àÀxr+ðØ?¥l$yO@_l$?R¼2ï߯¼ 2à 6!ù,s@pH,?È#âèh:¨T0ô4® >+à?p©Ñd¢Y`B¡p8G AØ%%HÁçW¶ _B???B¥¦¥ B®©C³´µI·¸FA;Content-Type: image/gif >+ >+GIF89aÕÿÿr/GøØf'øÐxøàøÐf>2èÆøè°èÐøðÈÿÿÿÃ6úöºøà øØ?]FøèÒ«üößãϹ´2àÀxr+ðØ?¥l$yO@_l$?R¼2ï߯¼ 2à 6!ù,s@pH,?È#âèh:¨T0ô4® >+à?p©Ñd¢Y`B¡p8G AØ%%HÁçW¶ _B???B¥¦¥ B®©C³´µI·¸FA; >Index: src/org/eclipse/uml2/diagram/activity/view/factories/MergeNodeViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/MergeNodeViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/MergeNodeViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/MergeNodeViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class MergeNodeViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.MergeNodeEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/FlowFinalNodeEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/FlowFinalNodeEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/FlowFinalNodeEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/FlowFinalNodeEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,269 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.editpolicies.ResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.FlowFinalNodeItemSemanticEditPolicy; >+ >+/** >+ * @generated >+ */ >+public class FlowFinalNodeEditPart extends ShapeNodeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2011; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public FlowFinalNodeEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new FlowFinalNodeItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ FlowFinalFigure figure = new FlowFinalFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public FlowFinalFigure getPrimaryShape() { >+ return (FlowFinalFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(23), getMapMode().DPtoLP(23)); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPolicy getPrimaryDragEditPolicy() { >+ EditPolicy result = super.getPrimaryDragEditPolicy(); >+ if (result instanceof ResizableEditPolicy) { >+ ResizableEditPolicy ep = (ResizableEditPolicy) result; >+ >+ ep.setResizeDirections(PositionConstants.NONE); >+ >+ } >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createNodeFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class FlowFinalFigure extends org.eclipse.draw2d.Ellipse { >+ >+ /** >+ * @generated >+ */ >+ public FlowFinalFigure() { >+ >+ org.eclipse.uml2.diagram.common.draw2d.CenterLayout myGenLayoutManager = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout(); >+ >+ this.setLayoutManager(myGenLayoutManager); >+ >+ this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black); >+ this.setPreferredSize(getMapMode().DPtoLP(23), getMapMode().DPtoLP(23)); >+ this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(23), getMapMode().DPtoLP(23))); >+ this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(23), getMapMode().DPtoLP(23))); >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.draw2d.Polyline fig_0 = new org.eclipse.draw2d.Polyline(); >+ >+ fig_0.addPoint(new org.eclipse.draw2d.geometry.Point(4, 4)); >+ fig_0.addPoint(new org.eclipse.draw2d.geometry.Point(19, 19)); >+ >+ setFigureAux_FlowFinalFigure_BackSlash(fig_0); >+ >+ Object layData0 = null; >+ >+ this.add(fig_0, layData0); >+ org.eclipse.draw2d.Polyline fig_1 = new org.eclipse.draw2d.Polyline(); >+ >+ fig_1.addPoint(new org.eclipse.draw2d.geometry.Point(4, 19)); >+ fig_1.addPoint(new org.eclipse.draw2d.geometry.Point(19, 4)); >+ >+ setFigureAux_FlowFinalFigure_Slash(fig_1); >+ >+ Object layData1 = null; >+ >+ this.add(fig_1, layData1); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.Polyline fAux_FlowFinalFigure_BackSlash; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.draw2d.Polyline getFigureAux_FlowFinalFigure_BackSlash() { >+ return fAux_FlowFinalFigure_BackSlash; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureAux_FlowFinalFigure_BackSlash(org.eclipse.draw2d.Polyline fig) { >+ fAux_FlowFinalFigure_BackSlash = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.draw2d.Polyline fAux_FlowFinalFigure_Slash; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.draw2d.Polyline getFigureAux_FlowFinalFigure_Slash() { >+ return fAux_FlowFinalFigure_Slash; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureAux_FlowFinalFigure_Slash(org.eclipse.draw2d.Polyline fig) { >+ fAux_FlowFinalFigure_Slash = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = true; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/StructuredActivityNodeViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/StructuredActivityNodeViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/StructuredActivityNodeViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/StructuredActivityNodeViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class StructuredActivityNodeViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.StructuredActivityNodeEditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InputPin2ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InputPin2ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InputPin2ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InputPin2ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName2EditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InputPin2ViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.InputPin2EditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(InputPinName2EditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/CreateObjectActionEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/CreateObjectActionEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/CreateObjectActionEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/CreateObjectActionEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,296 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.PositionConstants; >+import org.eclipse.draw2d.StackLayout; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.editpolicies.NonResizableEditPolicy; >+import org.eclipse.gef.requests.CreateRequest; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; >+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; >+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.policies.CreateObjectActionCanonicalEditPolicy; >+import org.eclipse.uml2.diagram.activity.edit.policies.CreateObjectActionItemSemanticEditPolicy; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class CreateObjectActionEditPart extends AbstractBorderedShapeEditPart { >+ >+ /** >+ * @generated >+ */ >+ public static final int VISUAL_ID = 2015; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected IFigure primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public CreateObjectActionEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new CreateObjectActionItemSemanticEditPolicy()); >+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); >+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new CreateObjectActionCanonicalEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected LayoutEditPolicy createLayoutEditPolicy() { >+ LayoutEditPolicy lep = new LayoutEditPolicy() { >+ >+ protected EditPolicy createChildEditPolicy(EditPart child) { >+ EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >+ if (result == null) { >+ result = new NonResizableEditPolicy(); >+ } >+ return result; >+ } >+ >+ protected Command getMoveChildrenCommand(Request request) { >+ return null; >+ } >+ >+ protected Command getCreateCommand(CreateRequest request) { >+ return null; >+ } >+ }; >+ return lep; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createNodeShape() { >+ ActionBaseFigure figure = new ActionBaseFigure(); >+ return primaryShape = figure; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ActionBaseFigure getPrimaryShape() { >+ return (ActionBaseFigure) primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) { >+ if (editPart instanceof OutputPin2EditPart) { >+ return getBorderedFigure().getBorderItemContainer(); >+ } >+ >+ return super.getContentPaneFor(editPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean addFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof CreateObjectActionNameEditPart) { >+ ((CreateObjectActionNameEditPart) childEditPart).setLabel(getPrimaryShape().getFigureActionBaseFigure_name()); >+ return true; >+ } >+ if (childEditPart instanceof OutputPin2EditPart) { >+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.EAST); >+ getBorderedFigure().getBorderItemContainer().add(((OutputPin2EditPart) childEditPart).getFigure(), locator); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean removeFixedChild(EditPart childEditPart) { >+ if (childEditPart instanceof OutputPin2EditPart) { >+ getBorderedFigure().getBorderItemContainer().remove(((OutputPin2EditPart) childEditPart).getFigure()); >+ return true; >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected NodeFigure createNodePlate() { >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(80), getMapMode().DPtoLP(50)); >+ return result; >+ } >+ >+ /** >+ * Creates figure for this edit part. >+ * >+ * Body of this method does not depend on settings in generation model >+ * so you may safely remove <i>generated</i> tag and modify it. >+ * >+ * @generated >+ */ >+ protected NodeFigure createMainFigure() { >+ NodeFigure figure = createNodePlate(); >+ figure.setLayoutManager(new StackLayout()); >+ IFigure shape = createNodeShape(); >+ figure.add(shape); >+ contentPane = setupContentPane(shape); >+ return figure; >+ } >+ >+ /** >+ * Default implementation treats passed figure as content pane. >+ * Respects layout one may have set for generated figure. >+ * @param nodeShape instance of generated figure class >+ * @generated >+ */ >+ protected IFigure setupContentPane(IFigure nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); >+ layout.setSpacing(getMapMode().DPtoLP(5)); >+ nodeShape.setLayoutManager(layout); >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ if (contentPane != null) { >+ return contentPane; >+ } >+ return super.getContentPane(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getPrimaryChildEditPart() { >+ return getChildBySemanticHint(UMLVisualIDRegistry.getType(CreateObjectActionNameEditPart.VISUAL_ID)); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(EditPart childEditPart, int index) { >+ if (addFixedChild(childEditPart)) { >+ return; >+ } >+ super.addChildVisual(childEditPart, -1); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(EditPart childEditPart) { >+ if (removeFixedChild(childEditPart)) { >+ return; >+ } >+ super.removeChildVisual(childEditPart); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class ActionBaseFigure extends org.eclipse.draw2d.RoundedRectangle { >+ >+ /** >+ * @generated >+ */ >+ public ActionBaseFigure() { >+ >+ org.eclipse.uml2.diagram.common.draw2d.CenterLayout myGenLayoutManager = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout(); >+ >+ this.setLayoutManager(myGenLayoutManager); >+ >+ this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(16), getMapMode().DPtoLP(16))); >+ >+ createContents(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void createContents() { >+ org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel(); >+ >+ fig_0.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(0), getMapMode().DPtoLP(5), getMapMode().DPtoLP(0), getMapMode().DPtoLP(5))); >+ >+ setFigureActionBaseFigure_name(fig_0); >+ >+ Object layData0 = null; >+ >+ this.add(fig_0, layData0); >+ } >+ >+ /** >+ * @generated >+ */ >+ private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fActionBaseFigure_name; >+ >+ /** >+ * @generated >+ */ >+ public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureActionBaseFigure_name() { >+ return fActionBaseFigure_name; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setFigureActionBaseFigure_name(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) { >+ fActionBaseFigure_name = fig; >+ } >+ >+ /** >+ * @generated >+ */ >+ private boolean myUseLocalCoordinates = false; >+ >+ /** >+ * @generated >+ */ >+ protected boolean useLocalCoordinates() { >+ return myUseLocalCoordinates; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setUseLocalCoordinates(boolean useLocalCoordinates) { >+ myUseLocalCoordinates = useLocalCoordinates; >+ } >+ >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/AddStructuralFeatureValueActionEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/AddStructuralFeatureValueActionEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/AddStructuralFeatureValueActionEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/AddStructuralFeatureValueActionEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class AddStructuralFeatureValueActionEditHelper extends UMLBaseEditHelper { >+} >Index: plugin.xml >=================================================================== >RCS file: plugin.xml >diff -N plugin.xml >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ plugin.xml 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,827 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<?eclipse version="3.0"?> >+ >+<plugin> >+ >+<!-- gmf generator persistent region begin --> >+<!-- gmf generator persistent region end --> >+ >+ <extension point="org.eclipse.core.runtime.preferences"> >+ <initializer class="org.eclipse.uml2.diagram.activity.part.UMLDiagramPreferenceInitializer"/> >+ </extension> >+ >+ <extension point="org.eclipse.team.core.fileTypes"> >+ <fileTypes >+ type="text" >+ extension="umlactivity_diagram"> >+ </fileTypes> >+ </extension> >+ >+ <extension point="org.eclipse.emf.ecore.extension_parser"> >+ <parser >+ type="umlactivity_diagram" >+ class="org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory"> >+ </parser> >+ </extension> >+ >+ <extension point="org.eclipse.ui.editors"> >+ <editor >+ id="org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorID" >+ name="%editorName" >+ icon="icons/obj16/UMLDiagramFile.gif" >+ extensions="umlactivity_diagram" >+ default="true" >+ class="org.eclipse.uml2.diagram.activity.part.UMLDiagramEditor" >+ matchingStrategy="org.eclipse.uml2.diagram.activity.part.UMLMatchingStrategy" >+ contributorClass="org.eclipse.uml2.diagram.activity.part.UMLDiagramActionBarContributor"> >+ </editor> >+ </extension> >+ >+ <extension point="org.eclipse.ui.newWizards"> >+ <wizard >+ name="%newWizardName" >+ icon="icons/obj16/UMLDiagramFile.gif" >+ category="org.eclipse.ui.Examples" >+ class="org.eclipse.uml2.diagram.activity.part.UMLCreationWizard" >+ id="org.eclipse.uml2.diagram.activity.part.UMLCreationWizardID"> >+ <description>%newWizardDesc</description> >+ </wizard> >+ </extension> >+ >+ <extension point="org.eclipse.ui.popupMenus"> >+ <objectContribution >+ id="org.eclipse.uml2.diagram.activity.ui.objectContribution.IFile1" >+ nameFilter="*.uml" >+ objectClass="org.eclipse.core.resources.IFile"> >+ <action >+ label="%initDiagramActionLabel" >+ class="org.eclipse.uml2.diagram.activity.part.UMLInitDiagramFileAction" >+ menubarPath="additions" >+ enablesFor="1" >+ id="org.eclipse.uml2.diagram.activity.part.UMLInitDiagramFileActionID"> >+ </action> >+ </objectContribution> >+ <objectContribution >+ adaptable="false" >+ id="org.eclipse.uml2.diagram.activity.ui.objectContribution.ActivityEditPart2" >+ objectClass="org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart"> >+ <action >+ class="org.eclipse.uml2.diagram.activity.part.UMLLoadResourceAction" >+ enablesFor="1" >+ id="org.eclipse.uml2.diagram.activity.part.UMLLoadResourceActionID" >+ label="%loadResourceActionLabel" >+ menubarPath="additions"> >+ </action> >+ </objectContribution> >+ </extension> >+ >+ <extension point="org.eclipse.gmf.runtime.common.ui.services.action.contributionItemProviders"> >+ <contributionItemProvider >+ class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContributionItemProvider" >+ checkPluginLoaded="false"> >+ <Priority name="Low"/> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.OutputPinEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.OutputPinNameEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ <popupPredefinedItem id="deleteFromModelAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.OutputPin2EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName2EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ <popupPredefinedItem id="deleteFromModelAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InputPinEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InputPinNameEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ <popupPredefinedItem id="deleteFromModelAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InputPin2EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InputPinName2EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ <popupPredefinedItem id="deleteFromModelAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InputPin3EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InputPinName3EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ <popupPredefinedItem id="deleteFromModelAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.OutputPin3EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName3EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ <popupPredefinedItem id="deleteFromModelAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InputPin4EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InputPinName4EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ <popupPredefinedItem id="deleteFromModelAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InputPin5EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InputPinName5EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ <popupPredefinedItem id="deleteFromModelAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventActionEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventAction2EditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.ActivityFinalNodeEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.DecisionNodeEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.MergeNodeEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.InitialNodeEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.StructuredActivityNodeEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.DataStoreNodeEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.CentralBufferNodeEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionNameEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.FlowFinalNodeEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.ForkNodeEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.JoinNodeEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.PinEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.PinNameEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionNameEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionNameEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionNameEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionNameEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.ControlFlowEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider"> >+ <popupStructuredContributionCriteria objectClass="org.eclipse.uml2.diagram.activity.edit.parts.ObjectFlowEditPart"/> >+ <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/> >+ </popupContribution> >+ </contributionItemProvider> >+ </extension> >+ >+ <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders"> >+ <GlobalActionHandlerProvider >+ class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramGlobalActionHandlerProvider" >+ id="UMLActivityPresentation"> >+ <Priority name="Lowest"/> >+ <ViewId id="org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorID"> >+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart"> >+ <GlobalActionId actionId="delete"/> >+ </ElementType> >+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart"> >+ <GlobalActionId actionId="save"/> >+ </ElementType> >+ </ViewId> >+ </GlobalActionHandlerProvider> >+ <GlobalActionHandlerProvider >+ class="org.eclipse.gmf.runtime.diagram.ui.providers.ide.providers.DiagramIDEGlobalActionHandlerProvider" >+ id="UMLActivityPresentationIDE"> >+ <Priority name="Lowest"/> >+ <ViewId id="org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorID"> >+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart"> >+ <GlobalActionId actionId="bookmark"/> >+ </ElementType> >+ </ViewId> >+ </GlobalActionHandlerProvider> >+ <GlobalActionHandlerProvider >+ class="org.eclipse.gmf.runtime.diagram.ui.render.providers.DiagramUIRenderGlobalActionHandlerProvider" >+ id="UMLActivityRender"> >+ <Priority name="Lowest"/> >+ <ViewId id="org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorID"> >+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart"> >+ <GlobalActionId actionId="cut"/> >+ <GlobalActionId actionId="copy"/> >+ <GlobalActionId actionId="paste"/> >+ </ElementType> >+ </ViewId> >+ </GlobalActionHandlerProvider> >+ </extension> >+ >+ <extension point="org.eclipse.gmf.runtime.diagram.core.viewProviders"> >+ <viewProvider class="org.eclipse.uml2.diagram.activity.providers.UMLViewProvider"> >+ <Priority name="Lowest"/> >+ <context viewClass="org.eclipse.gmf.runtime.notation.Diagram" semanticHints="UMLActivity"/> >+ <context viewClass="org.eclipse.gmf.runtime.notation.Node" semanticHints=""/> >+ <context viewClass="org.eclipse.gmf.runtime.notation.Edge" semanticHints=""/> >+ </viewProvider> >+ </extension> >+ >+ <extension point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders"> >+ <editpartProvider class="org.eclipse.uml2.diagram.activity.providers.UMLEditPartProvider"> >+ <Priority name="Lowest"/> >+ </editpartProvider> >+ </extension> >+ >+ <extension point="org.eclipse.gmf.runtime.diagram.ui.paletteProviders"> >+ <paletteProvider class="org.eclipse.uml2.diagram.activity.providers.UMLPaletteProvider"> >+ <Priority name="Lowest"/> >+ <editor id="org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorID"/> >+ </paletteProvider> >+ </extension> >+ >+ <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders"> >+ <modelingAssistantProvider class="org.eclipse.uml2.diagram.activity.providers.UMLModelingAssistantProvider"> >+ <Priority name="Lowest"/> >+ </modelingAssistantProvider> >+ </extension> >+ >+ <extension point="org.eclipse.gmf.runtime.common.ui.services.iconProviders"> >+ <IconProvider class="org.eclipse.uml2.diagram.activity.providers.UMLIconProvider"> >+ <Priority name="Low"/> >+ </IconProvider> >+ </extension> >+ >+ <extension point="org.eclipse.gmf.runtime.common.ui.services.parserProviders"> >+ <ParserProvider class="org.eclipse.uml2.diagram.activity.providers.UMLParserProvider"> >+ <Priority name="Lowest"/> >+ </ParserProvider> >+ </extension> >+ >+ <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes"> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.Activity_1000" >+ name="Undefined" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="Activity" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.ActivityEditHelper"> >+ <param name="semanticHint" value="1000"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.OutputPin_3001" >+ name="OutputPin" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="OutputPin" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.OutputPinEditHelper"> >+ <param name="semanticHint" value="3001"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <specializationType >+ id="org.eclipse.uml2.diagram.activity.OutputPin_3002" >+ name="OutputPin" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ edithelperadvice="org.eclipse.uml2.diagram.activity.edit.helpers.OutputPinEditHelperAdvice"> >+ <specializes id="org.eclipse.uml2.diagram.activity.OutputPin_3001"/> >+ <param name="semanticHint" value="3002"/> >+ </specializationType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.InputPin_3003" >+ name="Input Pin insertAt" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="InputPin" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.InputPinEditHelper"> >+ <param name="semanticHint" value="3003"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <specializationType >+ id="org.eclipse.uml2.diagram.activity.InputPin_3004" >+ name="Input Pin value" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ edithelperadvice="org.eclipse.uml2.diagram.activity.edit.helpers.InputPinEditHelperAdvice"> >+ <specializes id="org.eclipse.uml2.diagram.activity.InputPin_3003"/> >+ <param name="semanticHint" value="3004"/> >+ </specializationType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <specializationType >+ id="org.eclipse.uml2.diagram.activity.InputPin_3005" >+ name="Input Pin object" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ edithelperadvice="org.eclipse.uml2.diagram.activity.edit.helpers.InputPin2EditHelperAdvice"> >+ <specializes id="org.eclipse.uml2.diagram.activity.InputPin_3003"/> >+ <param name="semanticHint" value="3005"/> >+ </specializationType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <specializationType >+ id="org.eclipse.uml2.diagram.activity.OutputPin_3006" >+ name="Output Pin result" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ edithelperadvice="org.eclipse.uml2.diagram.activity.edit.helpers.OutputPin2EditHelperAdvice"> >+ <specializes id="org.eclipse.uml2.diagram.activity.OutputPin_3001"/> >+ <param name="semanticHint" value="3006"/> >+ </specializationType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <specializationType >+ id="org.eclipse.uml2.diagram.activity.InputPin_3007" >+ name="Input Pin argument" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ edithelperadvice="org.eclipse.uml2.diagram.activity.edit.helpers.InputPin3EditHelperAdvice"> >+ <specializes id="org.eclipse.uml2.diagram.activity.InputPin_3003"/> >+ <param name="semanticHint" value="3007"/> >+ </specializationType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <specializationType >+ id="org.eclipse.uml2.diagram.activity.InputPin_3008" >+ name="Input Pin target" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ edithelperadvice="org.eclipse.uml2.diagram.activity.edit.helpers.InputPin4EditHelperAdvice"> >+ <specializes id="org.eclipse.uml2.diagram.activity.InputPin_3003"/> >+ <param name="semanticHint" value="3008"/> >+ </specializationType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.AcceptEventAction_2001" >+ name="AcceptEventAction" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="AcceptEventAction" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.AcceptEventActionEditHelper"> >+ <param name="semanticHint" value="2001"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <specializationType >+ id="org.eclipse.uml2.diagram.activity.AcceptEventAction_2002" >+ name="AcceptEventAction" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ edithelperadvice="org.eclipse.uml2.diagram.activity.edit.helpers.AcceptEventActionEditHelperAdvice"> >+ <specializes id="org.eclipse.uml2.diagram.activity.AcceptEventAction_2001"/> >+ <param name="semanticHint" value="2002"/> >+ </specializationType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.ActivityFinalNode_2003" >+ name="ActivityFinalNode" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="ActivityFinalNode" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.ActivityFinalNodeEditHelper"> >+ <param name="semanticHint" value="2003"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.DecisionNode_2004" >+ name="DecisionNode" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="DecisionNode" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.DecisionNodeEditHelper"> >+ <param name="semanticHint" value="2004"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.MergeNode_2005" >+ name="MergeNode" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="MergeNode" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.MergeNodeEditHelper"> >+ <param name="semanticHint" value="2005"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.InitialNode_2006" >+ name="InitialNode" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="InitialNode" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.InitialNodeEditHelper"> >+ <param name="semanticHint" value="2006"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.StructuredActivityNode_2007" >+ name="StructuredActivityNode" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="StructuredActivityNode" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.StructuredActivityNodeEditHelper"> >+ <param name="semanticHint" value="2007"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.DataStoreNode_2008" >+ name="DataStoreNode" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="DataStoreNode" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.DataStoreNodeEditHelper"> >+ <param name="semanticHint" value="2008"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.CentralBufferNode_2009" >+ name="CentralBufferNode" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="CentralBufferNode" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.CentralBufferNodeEditHelper"> >+ <param name="semanticHint" value="2009"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.OpaqueAction_2010" >+ name="OpaqueAction" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="OpaqueAction" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.OpaqueActionEditHelper"> >+ <param name="semanticHint" value="2010"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.FlowFinalNode_2011" >+ name="FlowFinalNode" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="FlowFinalNode" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.FlowFinalNodeEditHelper"> >+ <param name="semanticHint" value="2011"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.ForkNode_2012" >+ name="ForkNode" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="ForkNode" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.ForkNodeEditHelper"> >+ <param name="semanticHint" value="2012"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.JoinNode_2013" >+ name="JoinNode" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="JoinNode" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.JoinNodeEditHelper"> >+ <param name="semanticHint" value="2013"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.Pin_2014" >+ name="Pin" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="Pin" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.PinEditHelper"> >+ <param name="semanticHint" value="2014"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.CreateObjectAction_2015" >+ name="CreateObjectAction" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="CreateObjectAction" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.CreateObjectActionEditHelper"> >+ <param name="semanticHint" value="2015"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.AddStructuralFeatureValueAction_2016" >+ name="AddStructuralFeatureValueAction" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="AddStructuralFeatureValueAction" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.AddStructuralFeatureValueActionEditHelper"> >+ <param name="semanticHint" value="2016"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.CallBehaviorAction_2017" >+ name="CallBehaviorAction" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="CallBehaviorAction" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.CallBehaviorActionEditHelper"> >+ <param name="semanticHint" value="2017"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.CallOperationAction_2018" >+ name="CallOperationAction" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="CallOperationAction" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.CallOperationActionEditHelper"> >+ <param name="semanticHint" value="2018"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.ControlFlow_4001" >+ name="ControlFlow" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="ControlFlow" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.ControlFlowEditHelper"> >+ <param name="semanticHint" value="4001"/> >+ </metamodelType> >+ </metamodel> >+ >+ <metamodel nsURI="http://www.eclipse.org/uml2/2.0.0/UML"> >+ <metamodelType >+ id="org.eclipse.uml2.diagram.activity.ObjectFlow_4002" >+ name="ObjectFlow" >+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" >+ eclass="ObjectFlow" >+ edithelper="org.eclipse.uml2.diagram.activity.edit.helpers.ObjectFlowEditHelper"> >+ <param name="semanticHint" value="4002"/> >+ </metamodelType> >+ </metamodel> >+ </extension> >+ >+ <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings"> >+ <clientContext id="UMLActivityClientContext"> >+ <enablement> >+ <test >+ property="org.eclipse.gmf.runtime.emf.core.editingDomain" >+ value="org.eclipse.uml2.diagram.activity.EditingDomain"/> >+ </enablement> >+ </clientContext> >+ <binding context="UMLActivityClientContext"> >+ <elementType ref="org.eclipse.uml2.diagram.activity.Activity_1000"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.OutputPin_3001"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.OutputPin_3002"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.InputPin_3003"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.InputPin_3004"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.InputPin_3005"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.OutputPin_3006"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.InputPin_3007"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.InputPin_3008"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.AcceptEventAction_2001"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.AcceptEventAction_2002"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.ActivityFinalNode_2003"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.DecisionNode_2004"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.MergeNode_2005"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.InitialNode_2006"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.StructuredActivityNode_2007"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.DataStoreNode_2008"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.CentralBufferNode_2009"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.OpaqueAction_2010"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.FlowFinalNode_2011"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.ForkNode_2012"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.JoinNode_2013"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.Pin_2014"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.CreateObjectAction_2015"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.AddStructuralFeatureValueAction_2016"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.CallBehaviorAction_2017"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.CallOperationAction_2018"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.ControlFlow_4001"/> >+ <elementType ref="org.eclipse.uml2.diagram.activity.ObjectFlow_4002"/> >+ <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/> >+ </binding> >+ </extension> >+ >+ <extension point="org.eclipse.ui.navigator.viewer"> >+ <viewerContentBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer"> >+ <includes> >+ <contentExtension pattern="org.eclipse.uml2.diagram.activity.resourceContent"/> >+ <contentExtension pattern="org.eclipse.uml2.diagram.activity.navigatorLinkHelper"/> >+ </includes> >+ </viewerContentBinding> >+ </extension> >+ >+ <extension point="org.eclipse.ui.navigator.navigatorContent"> >+ <navigatorContent >+ id="org.eclipse.uml2.diagram.activity.resourceContent" >+ name="%navigatorContentName" >+ priority="normal" >+ contentProvider="org.eclipse.uml2.diagram.activity.navigator.UMLNavigatorContentProvider" >+ labelProvider="org.eclipse.uml2.diagram.activity.navigator.UMLNavigatorLabelProvider" >+ icon="icons/obj16/UMLDiagramFile.gif" >+ activeByDefault="true"> >+ <triggerPoints> >+ <or> >+ <and> >+ <instanceof value="org.eclipse.core.resources.IFile"/> >+ <test property="org.eclipse.core.resources.extension" value="umlactivity_diagram"/> >+ </and> >+ <instanceof value="org.eclipse.uml2.diagram.activity.navigator.UMLAbstractNavigatorItem"/> >+ </or> >+ </triggerPoints> >+ <possibleChildren> >+ <instanceof value="org.eclipse.uml2.diagram.activity.navigator.UMLAbstractNavigatorItem"/> >+ </possibleChildren> >+ <commonSorter >+ id="org.eclipse.uml2.diagram.activity.navigatorSorter" >+ class="org.eclipse.uml2.diagram.activity.navigator.UMLNavigatorSorter"> >+ <parentExpression> >+ <or> >+ <and> >+ <instanceof value="org.eclipse.core.resources.IFile"/> >+ <test property="org.eclipse.core.resources.extension" value="umlactivity_diagram"/> >+ </and> >+ <instanceof value="org.eclipse.uml2.diagram.activity.navigator.UMLAbstractNavigatorItem"/> >+ </or> >+ </parentExpression> >+ </commonSorter> >+ <actionProvider >+ id="org.eclipse.uml2.diagram.activity.navigatorActionProvider" >+ class="org.eclipse.uml2.diagram.activity.navigator.UMLNavigatorActionProvider"> >+ </actionProvider> >+ </navigatorContent> >+ </extension> >+ >+ <extension point="org.eclipse.ui.navigator.linkHelper"> >+ <linkHelper >+ id="org.eclipse.uml2.diagram.activity.navigatorLinkHelper" >+ class="org.eclipse.uml2.diagram.activity.navigator.UMLNavigatorLinkHelper"> >+ <editorInputEnablement> >+ <instanceof value="org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.document.FileEditorInputProxy"/> >+ </editorInputEnablement> >+ <selectionEnablement> >+ <instanceof value="org.eclipse.uml2.diagram.activity.navigator.UMLAbstractNavigatorItem"/> >+ </selectionEnablement> >+ </linkHelper> >+ </extension> >+ >+ <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor"> >+ <propertyContributor contributorId="org.eclipse.uml2.diagram.activity" >+ labelProvider="org.eclipse.uml2.diagram.activity.sheet.UMLSheetLabelProvider"> >+ <propertyCategory category="domain"/> >+ <propertyCategory category="visual"/> >+ <propertyCategory category="extra"/> >+ </propertyContributor> >+ </extension> >+ >+ <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs"> >+ <propertyTabs contributorId="org.eclipse.uml2.diagram.activity"> >+ <propertyTab >+ category="visual" >+ id="property.tab.AppearancePropertySection" >+ label="%tab.appearance"/> >+ <propertyTab >+ category="visual" >+ id="property.tab.DiagramPropertySection" >+ label="%tab.diagram"/> >+ <propertyTab >+ category="domain" >+ id="property.tab.domain" >+ label="%tab.domain"/> >+ </propertyTabs> >+ </extension> >+ >+ <extension point="org.eclipse.ui.views.properties.tabbed.propertySections"> >+ <propertySections contributorId="org.eclipse.uml2.diagram.activity"> >+ >+ <propertySection id="property.section.ConnectorAppearancePropertySection" >+ filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ConnectionEditPartPropertySectionFilter" >+ class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ConnectionAppearancePropertySection" >+ tab="property.tab.AppearancePropertySection"> >+ </propertySection> >+ <propertySection id="property.section.ShapeColorAndFontPropertySection" >+ filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ShapeEditPartPropertySectionFilter" >+ class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ShapeColorsAndFontsPropertySection" >+ tab="property.tab.AppearancePropertySection"> >+ </propertySection> >+ <propertySection id="property.section.DiagramColorsAndFontsPropertySection" >+ filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter" >+ class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.DiagramColorsAndFontsPropertySection" >+ tab="property.tab.AppearancePropertySection"> >+ </propertySection> >+ >+ <propertySection id="property.section.RulerGridPropertySection" >+ filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter" >+ class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.grid.RulerGridPropertySection" >+ tab="property.tab.DiagramPropertySection"> >+ </propertySection> >+ <propertySection >+ id="property.section.domain" >+ tab="property.tab.domain" >+ class="org.eclipse.uml2.diagram.activity.sheet.UMLPropertySection"> >+ <input type="org.eclipse.gmf.runtime.notation.View"/> >+ <input type="org.eclipse.gef.EditPart"/> >+ <input type="org.eclipse.uml2.diagram.activity.navigator.UMLAbstractNavigatorItem"/> >+ </propertySection> >+ </propertySections> >+ </extension> >+</plugin> >Index: src/org/eclipse/uml2/diagram/activity/providers/UMLStructuralFeatureParser.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/providers/UMLStructuralFeatureParser.java >diff -N src/org/eclipse/uml2/diagram/activity/providers/UMLStructuralFeatureParser.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/providers/UMLStructuralFeatureParser.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,132 @@ >+package org.eclipse.uml2.diagram.activity.providers; >+ >+import java.text.FieldPosition; >+import java.text.MessageFormat; >+import java.util.Collections; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.ecore.EStructuralFeature; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.emf.transaction.util.TransactionUtil; >+import org.eclipse.gmf.runtime.common.core.command.ICommand; >+import org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; >+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin; >+ >+/** >+ * @generated >+ */ >+public class UMLStructuralFeatureParser extends UMLAbstractParser { >+ >+ /** >+ * @generated >+ */ >+ public static final MessageFormat DEFAULT_PROCESSOR = new MessageFormat("{0}"); //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ private EStructuralFeature feature; >+ >+ /** >+ * @generated >+ */ >+ public UMLStructuralFeatureParser(EStructuralFeature feature) { >+ this.feature = feature; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected MessageFormat getViewProcessor() { >+ MessageFormat processor = super.getViewProcessor(); >+ return processor == null ? DEFAULT_PROCESSOR : processor; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected MessageFormat getEditProcessor() { >+ MessageFormat processor = super.getEditProcessor(); >+ return processor == null ? DEFAULT_PROCESSOR : processor; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getDomainElement(EObject element) { >+ return element; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getStringByPattern(IAdaptable adapter, int flags, String pattern, MessageFormat processor) { >+ EObject element = (EObject) adapter.getAdapter(EObject.class); >+ element = getDomainElement(element); >+ return getStringByPattern(element, feature, processor); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getStringByPattern(EObject element, EStructuralFeature feature, MessageFormat processor) { >+ Object value = element == null ? null : element.eGet(feature); >+ value = getValidValue(feature, value); >+ return processor.format(new Object[] { value }, new StringBuffer(), new FieldPosition(0)).toString(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IParserEditStatus validateValues(Object[] values) { >+ if (values.length > 1) { >+ return ParserEditStatus.UNEDITABLE_STATUS; >+ } >+ Object value = values.length == 1 ? values[0] : null; >+ value = getValidNewValue(feature, value); >+ if (value instanceof InvalidValue) { >+ return new ParserEditStatus(UMLDiagramEditorPlugin.ID, IParserEditStatus.UNEDITABLE, value.toString()); >+ } >+ return ParserEditStatus.EDITABLE_STATUS; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ICommand getParseCommand(IAdaptable adapter, Object[] values) { >+ EObject element = (EObject) adapter.getAdapter(EObject.class); >+ element = getDomainElement(element); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(element); >+ if (editingDomain == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ Object value = values.length == 1 ? values[0] : null; >+ ICommand command = getModificationCommand(element, feature, value); >+ return new CompositeTransactionalCommand(editingDomain, command.getLabel(), Collections.singletonList(command)); >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean isAffectingEvent(Object event, int flags) { >+ if (event instanceof Notification) { >+ return isAffectingFeature(((Notification) event).getFeature()); >+ } >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isAffectingFeature(Object eventFeature) { >+ return feature == eventFeature; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorLabelProvider.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorLabelProvider.java >diff -N src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorLabelProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/navigator/UMLNavigatorLabelProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,829 @@ >+package org.eclipse.uml2.diagram.activity.navigator; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; >+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; >+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.resource.ImageDescriptor; >+import org.eclipse.jface.resource.ImageRegistry; >+import org.eclipse.jface.viewers.LabelProvider; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.ui.IMemento; >+import org.eclipse.ui.navigator.ICommonContentExtensionSite; >+import org.eclipse.ui.navigator.ICommonLabelProvider; >+import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventAction2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AcceptEventActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityFinalNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.AddStructuralFeatureValueActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallBehaviorActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CallOperationActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CentralBufferNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ControlFlowEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.CreateObjectActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.DataStoreNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.DecisionNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.FlowFinalNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ForkNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InitialNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPin5EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName4EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName5EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.JoinNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.MergeNodeEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.ObjectFlowEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OpaqueActionNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPin3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName2EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinName3EditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.OutputPinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.PinEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.PinNameEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.StructuredActivityNodeEditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.NamedElement; >+ >+/** >+ * @generated >+ */ >+public class UMLNavigatorLabelProvider extends LabelProvider implements ICommonLabelProvider { >+ >+ /** >+ * @generated >+ */ >+ static { >+ UMLDiagramEditorPlugin.getInstance().getImageRegistry().put("Navigator?InvalidElement", ImageDescriptor.getMissingImageDescriptor()); >+ UMLDiagramEditorPlugin.getInstance().getImageRegistry().put("Navigator?UnknownElement", ImageDescriptor.getMissingImageDescriptor()); >+ UMLDiagramEditorPlugin.getInstance().getImageRegistry().put("Navigator?ImageNotFound", ImageDescriptor.getMissingImageDescriptor()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public Image getImage(Object element) { >+ if (false == element instanceof UMLAbstractNavigatorItem) { >+ return super.getImage(element); >+ } >+ >+ UMLAbstractNavigatorItem abstractNavigatorItem = (UMLAbstractNavigatorItem) element; >+ if (!ActivityEditPart.MODEL_ID.equals(abstractNavigatorItem.getModelID())) { >+ return super.getImage(element); >+ } >+ >+ if (abstractNavigatorItem instanceof UMLNavigatorItem) { >+ UMLNavigatorItem navigatorItem = (UMLNavigatorItem) abstractNavigatorItem; >+ switch (navigatorItem.getVisualID()) { >+ case AcceptEventActionEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?AcceptEventAction", UMLElementTypes.AcceptEventAction_2001); >+ case AcceptEventAction2EditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?AcceptEventAction", UMLElementTypes.AcceptEventAction_2002); >+ case ActivityFinalNodeEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?ActivityFinalNode", UMLElementTypes.ActivityFinalNode_2003); >+ case DecisionNodeEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?DecisionNode", UMLElementTypes.DecisionNode_2004); >+ case MergeNodeEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?MergeNode", UMLElementTypes.MergeNode_2005); >+ case InitialNodeEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?InitialNode", UMLElementTypes.InitialNode_2006); >+ case StructuredActivityNodeEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?StructuredActivityNode", UMLElementTypes.StructuredActivityNode_2007); >+ case DataStoreNodeEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?DataStoreNode", UMLElementTypes.DataStoreNode_2008); >+ case CentralBufferNodeEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?CentralBufferNode", UMLElementTypes.CentralBufferNode_2009); >+ case OpaqueActionEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?OpaqueAction", UMLElementTypes.OpaqueAction_2010); >+ case FlowFinalNodeEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?FlowFinalNode", UMLElementTypes.FlowFinalNode_2011); >+ case ForkNodeEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?ForkNode", UMLElementTypes.ForkNode_2012); >+ case JoinNodeEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?JoinNode", UMLElementTypes.JoinNode_2013); >+ case PinEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?Pin", UMLElementTypes.Pin_2014); >+ case CreateObjectActionEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?CreateObjectAction", UMLElementTypes.CreateObjectAction_2015); >+ case AddStructuralFeatureValueActionEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?AddStructuralFeatureValueAction", UMLElementTypes.AddStructuralFeatureValueAction_2016); >+ case CallBehaviorActionEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?CallBehaviorAction", UMLElementTypes.CallBehaviorAction_2017); >+ case CallOperationActionEditPart.VISUAL_ID: >+ return getImage("Navigator?TopLevelNode?http://www.eclipse.org/uml2/2.0.0/UML?CallOperationAction", UMLElementTypes.CallOperationAction_2018); >+ case OutputPinEditPart.VISUAL_ID: >+ return getImage("Navigator?Node?http://www.eclipse.org/uml2/2.0.0/UML?OutputPin", UMLElementTypes.OutputPin_3001); >+ case OutputPin2EditPart.VISUAL_ID: >+ return getImage("Navigator?Node?http://www.eclipse.org/uml2/2.0.0/UML?OutputPin", UMLElementTypes.OutputPin_3002); >+ case InputPinEditPart.VISUAL_ID: >+ return getImage("Navigator?Node?http://www.eclipse.org/uml2/2.0.0/UML?InputPin", UMLElementTypes.InputPin_3003); >+ case InputPin2EditPart.VISUAL_ID: >+ return getImage("Navigator?Node?http://www.eclipse.org/uml2/2.0.0/UML?InputPin", UMLElementTypes.InputPin_3004); >+ case InputPin3EditPart.VISUAL_ID: >+ return getImage("Navigator?Node?http://www.eclipse.org/uml2/2.0.0/UML?InputPin", UMLElementTypes.InputPin_3005); >+ case OutputPin3EditPart.VISUAL_ID: >+ return getImage("Navigator?Node?http://www.eclipse.org/uml2/2.0.0/UML?OutputPin", UMLElementTypes.OutputPin_3006); >+ case InputPin4EditPart.VISUAL_ID: >+ return getImage("Navigator?Node?http://www.eclipse.org/uml2/2.0.0/UML?InputPin", UMLElementTypes.InputPin_3007); >+ case InputPin5EditPart.VISUAL_ID: >+ return getImage("Navigator?Node?http://www.eclipse.org/uml2/2.0.0/UML?InputPin", UMLElementTypes.InputPin_3008); >+ case ActivityEditPart.VISUAL_ID: >+ return getImage("Navigator?Diagram?http://www.eclipse.org/uml2/2.0.0/UML?Activity", UMLElementTypes.Activity_1000); >+ case ControlFlowEditPart.VISUAL_ID: >+ return getImage("Navigator?Link?http://www.eclipse.org/uml2/2.0.0/UML?ControlFlow", UMLElementTypes.ControlFlow_4001); >+ case ObjectFlowEditPart.VISUAL_ID: >+ return getImage("Navigator?Link?http://www.eclipse.org/uml2/2.0.0/UML?ObjectFlow", UMLElementTypes.ObjectFlow_4002); >+ default: >+ return getImage("Navigator?UnknownElement", null); >+ } >+ } else if (abstractNavigatorItem instanceof UMLNavigatorGroup) { >+ UMLNavigatorGroup group = (UMLNavigatorGroup) element; >+ return UMLDiagramEditorPlugin.getInstance().getBundledImage(group.getIcon()); >+ } >+ return super.getImage(element); >+ } >+ >+ /** >+ * @generated >+ */ >+ private Image getImage(String key, IElementType elementType) { >+ ImageRegistry imageRegistry = UMLDiagramEditorPlugin.getInstance().getImageRegistry(); >+ Image image = imageRegistry.get(key); >+ if (image == null && elementType != null && UMLElementTypes.isKnownElementType(elementType)) { >+ image = UMLElementTypes.getImage(elementType); >+ imageRegistry.put(key, image); >+ } >+ >+ if (image == null) { >+ image = imageRegistry.get("Navigator?ImageNotFound"); >+ imageRegistry.put(key, image); >+ } >+ return image; >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getText(Object element) { >+ if (false == element instanceof UMLAbstractNavigatorItem) { >+ return super.getText(element); >+ } >+ >+ UMLAbstractNavigatorItem abstractNavigatorItem = (UMLAbstractNavigatorItem) element; >+ if (!ActivityEditPart.MODEL_ID.equals(abstractNavigatorItem.getModelID())) { >+ return super.getText(element); >+ } >+ >+ if (abstractNavigatorItem instanceof UMLNavigatorItem) { >+ UMLNavigatorItem navigatorItem = (UMLNavigatorItem) abstractNavigatorItem; >+ switch (navigatorItem.getVisualID()) { >+ case AcceptEventActionEditPart.VISUAL_ID: >+ return getAcceptEventAction_2001Text(navigatorItem.getView()); >+ case AcceptEventAction2EditPart.VISUAL_ID: >+ return getAcceptEventAction_2002Text(navigatorItem.getView()); >+ case ActivityFinalNodeEditPart.VISUAL_ID: >+ return getActivityFinalNode_2003Text(navigatorItem.getView()); >+ case DecisionNodeEditPart.VISUAL_ID: >+ return getDecisionNode_2004Text(navigatorItem.getView()); >+ case MergeNodeEditPart.VISUAL_ID: >+ return getMergeNode_2005Text(navigatorItem.getView()); >+ case InitialNodeEditPart.VISUAL_ID: >+ return getInitialNode_2006Text(navigatorItem.getView()); >+ case StructuredActivityNodeEditPart.VISUAL_ID: >+ return getStructuredActivityNode_2007Text(navigatorItem.getView()); >+ case DataStoreNodeEditPart.VISUAL_ID: >+ return getDataStoreNode_2008Text(navigatorItem.getView()); >+ case CentralBufferNodeEditPart.VISUAL_ID: >+ return getCentralBufferNode_2009Text(navigatorItem.getView()); >+ case OpaqueActionEditPart.VISUAL_ID: >+ return getOpaqueAction_2010Text(navigatorItem.getView()); >+ case FlowFinalNodeEditPart.VISUAL_ID: >+ return getFlowFinalNode_2011Text(navigatorItem.getView()); >+ case ForkNodeEditPart.VISUAL_ID: >+ return getForkNode_2012Text(navigatorItem.getView()); >+ case JoinNodeEditPart.VISUAL_ID: >+ return getJoinNode_2013Text(navigatorItem.getView()); >+ case PinEditPart.VISUAL_ID: >+ return getPin_2014Text(navigatorItem.getView()); >+ case CreateObjectActionEditPart.VISUAL_ID: >+ return getCreateObjectAction_2015Text(navigatorItem.getView()); >+ case AddStructuralFeatureValueActionEditPart.VISUAL_ID: >+ return getAddStructuralFeatureValueAction_2016Text(navigatorItem.getView()); >+ case CallBehaviorActionEditPart.VISUAL_ID: >+ return getCallBehaviorAction_2017Text(navigatorItem.getView()); >+ case CallOperationActionEditPart.VISUAL_ID: >+ return getCallOperationAction_2018Text(navigatorItem.getView()); >+ case OutputPinEditPart.VISUAL_ID: >+ return getOutputPin_3001Text(navigatorItem.getView()); >+ case OutputPin2EditPart.VISUAL_ID: >+ return getOutputPin_3002Text(navigatorItem.getView()); >+ case InputPinEditPart.VISUAL_ID: >+ return getInputPin_3003Text(navigatorItem.getView()); >+ case InputPin2EditPart.VISUAL_ID: >+ return getInputPin_3004Text(navigatorItem.getView()); >+ case InputPin3EditPart.VISUAL_ID: >+ return getInputPin_3005Text(navigatorItem.getView()); >+ case OutputPin3EditPart.VISUAL_ID: >+ return getOutputPin_3006Text(navigatorItem.getView()); >+ case InputPin4EditPart.VISUAL_ID: >+ return getInputPin_3007Text(navigatorItem.getView()); >+ case InputPin5EditPart.VISUAL_ID: >+ return getInputPin_3008Text(navigatorItem.getView()); >+ case ActivityEditPart.VISUAL_ID: >+ return getActivity_1000Text(navigatorItem.getView()); >+ case ControlFlowEditPart.VISUAL_ID: >+ return getControlFlow_4001Text(navigatorItem.getView()); >+ case ObjectFlowEditPart.VISUAL_ID: >+ return getObjectFlow_4002Text(navigatorItem.getView()); >+ default: >+ return getUnknownElementText(navigatorItem.getView()); >+ } >+ } else if (abstractNavigatorItem instanceof UMLNavigatorGroup) { >+ UMLNavigatorGroup group = (UMLNavigatorGroup) element; >+ return group.getGroupName(); >+ } >+ return super.getText(element); >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getAcceptEventAction_2001Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2001); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getAcceptEventAction_2002Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2002); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getActivityFinalNode_2003Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2003); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getDecisionNode_2004Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2004); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getMergeNode_2005Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2005); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getInitialNode_2006Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2006); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getStructuredActivityNode_2007Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2007); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getDataStoreNode_2008Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2008); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getCentralBufferNode_2009Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2009); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getOpaqueAction_2010Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(OpaqueActionNameEditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.OpaqueAction_2010; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5001); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getFlowFinalNode_2011Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2011); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getForkNode_2012Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2012); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getJoinNode_2013Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 2013); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getPin_2014Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(PinNameEditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.Pin_2014; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5002); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getCreateObjectAction_2015Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(CreateObjectActionNameEditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.CreateObjectAction_2015; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5005); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getAddStructuralFeatureValueAction_2016Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(AddStructuralFeatureValueActionNameEditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.AddStructuralFeatureValueAction_2016; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5009); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getCallBehaviorAction_2017Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(CallBehaviorActionNameEditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.CallBehaviorAction_2017; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5012); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getCallOperationAction_2018Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(CallOperationActionNameEditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.CallOperationAction_2018; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5014); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getOutputPin_3001Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(OutputPinNameEditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.OutputPin_3001; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5003); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getOutputPin_3002Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(OutputPinName2EditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.OutputPin_3002; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5004); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getInputPin_3003Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(InputPinNameEditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.InputPin_3003; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5006); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getInputPin_3004Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(InputPinName2EditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.InputPin_3004; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5007); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getInputPin_3005Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(InputPinName3EditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.InputPin_3005; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5008); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getOutputPin_3006Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(OutputPinName3EditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.OutputPin_3006; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5010); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getInputPin_3007Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(InputPinName4EditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.InputPin_3007; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5011); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getInputPin_3008Text(View view) { >+ IParser parser = ParserService.getInstance().getParser(new IAdaptable() { >+ >+ public Object getAdapter(Class adapter) { >+ if (String.class.equals(adapter)) { >+ return UMLVisualIDRegistry.getType(InputPinName5EditPart.VISUAL_ID); >+ } >+ if (IElementType.class.equals(adapter)) { >+ return UMLElementTypes.InputPin_3008; >+ } >+ return null; >+ } >+ }); >+ if (parser != null) { >+ return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5013); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getActivity_1000Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 1000); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getControlFlow_4001Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 4001); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getObjectFlow_4002Text(View view) { >+ EObject domainModelElement = view.getElement(); >+ if (domainModelElement != null) { >+ return String.valueOf(((NamedElement) domainModelElement).getName()); >+ } else { >+ UMLDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 4002); >+ return ""; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private String getUnknownElementText(View view) { >+ return "<UnknownElement Visual_ID = " + view.getType() + ">"; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void init(ICommonContentExtensionSite aConfig) { >+ } >+ >+ /** >+ * @generated >+ */ >+ public void restoreState(IMemento aMemento) { >+ } >+ >+ /** >+ * @generated >+ */ >+ public void saveState(IMemento aMemento) { >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getDescription(Object anElement) { >+ return null; >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/PinEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/PinEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/PinEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/PinEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class PinEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/AcceptEventActionEditHelperAdvice.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/AcceptEventActionEditHelperAdvice.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/AcceptEventActionEditHelperAdvice.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/AcceptEventActionEditHelperAdvice.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,9 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice; >+ >+/** >+ * @generated >+ */ >+public class AcceptEventActionEditHelperAdvice extends AbstractEditHelperAdvice { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/UMLBaseItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/UMLBaseItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/UMLBaseItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/UMLBaseItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,315 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import java.util.Collections; >+import java.util.HashMap; >+import java.util.Map; >+ >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.common.core.command.ICommand; >+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.commands.CommandProxy; >+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.SemanticEditPolicy; >+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; >+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; >+import org.eclipse.gmf.runtime.emf.type.core.IEditHelperContext; >+import org.eclipse.gmf.runtime.emf.type.core.IElementType; >+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.helpers.UMLBaseEditHelper; >+import org.eclipse.uml2.diagram.activity.expressions.UMLAbstractExpression; >+import org.eclipse.uml2.diagram.activity.expressions.UMLOCLFactory; >+import org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorPlugin; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class UMLBaseItemSemanticEditPolicy extends SemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getSemanticCommand(IEditCommandRequest request) { >+ IEditCommandRequest completedRequest = completeRequest(request); >+ Object editHelperContext = completedRequest.getEditHelperContext(); >+ if (editHelperContext instanceof View || (editHelperContext instanceof IEditHelperContext && ((IEditHelperContext) editHelperContext).getEObject() instanceof View)) { >+ // no semantic commands are provided for pure design elements >+ return null; >+ } >+ if (editHelperContext == null) { >+ editHelperContext = ViewUtil.resolveSemanticElement((View) getHost().getModel()); >+ } >+ IElementType elementType = ElementTypeRegistry.getInstance().getElementType(editHelperContext); >+ if (elementType == ElementTypeRegistry.getInstance().getType("org.eclipse.gmf.runtime.emf.type.core.default")) { //$NON-NLS-1$ >+ elementType = null; >+ } >+ Command epCommand = getSemanticCommandSwitch(completedRequest); >+ if (epCommand != null) { >+ ICommand command = epCommand instanceof ICommandProxy ? ((ICommandProxy) epCommand).getICommand() : new CommandProxy(epCommand); >+ completedRequest.setParameter(UMLBaseEditHelper.EDIT_POLICY_COMMAND, command); >+ } >+ Command ehCommand = null; >+ if (elementType != null) { >+ ICommand command = elementType.getEditCommand(completedRequest); >+ if (command != null) { >+ if (!(command instanceof CompositeTransactionalCommand)) { >+ TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain(); >+ command = new CompositeTransactionalCommand(editingDomain, null).compose(command); >+ } >+ ehCommand = new ICommandProxy(command); >+ } >+ } >+ boolean shouldProceed = true; >+ if (completedRequest instanceof DestroyRequest) { >+ shouldProceed = shouldProceed((DestroyRequest) completedRequest); >+ } >+ if (shouldProceed) { >+ if (completedRequest instanceof DestroyRequest) { >+ TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain(); >+ Command deleteViewCommand = new ICommandProxy(new DeleteCommand(editingDomain, (View) getHost().getModel())); >+ ehCommand = ehCommand == null ? deleteViewCommand : ehCommand.chain(deleteViewCommand); >+ } >+ return ehCommand; >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getSemanticCommandSwitch(IEditCommandRequest req) { >+ if (req instanceof CreateRelationshipRequest) { >+ return getCreateRelationshipCommand((CreateRelationshipRequest) req); >+ } else if (req instanceof CreateElementRequest) { >+ return getCreateCommand((CreateElementRequest) req); >+ } else if (req instanceof ConfigureRequest) { >+ return getConfigureCommand((ConfigureRequest) req); >+ } else if (req instanceof DestroyElementRequest) { >+ return getDestroyElementCommand((DestroyElementRequest) req); >+ } else if (req instanceof DestroyReferenceRequest) { >+ return getDestroyReferenceCommand((DestroyReferenceRequest) req); >+ } else if (req instanceof DuplicateElementsRequest) { >+ return getDuplicateCommand((DuplicateElementsRequest) req); >+ } else if (req instanceof GetEditContextRequest) { >+ return getEditContextCommand((GetEditContextRequest) req); >+ } else if (req instanceof MoveRequest) { >+ return getMoveCommand((MoveRequest) req); >+ } else if (req instanceof ReorientReferenceRelationshipRequest) { >+ return getReorientReferenceRelationshipCommand((ReorientReferenceRelationshipRequest) req); >+ } else if (req instanceof ReorientRelationshipRequest) { >+ return getReorientRelationshipCommand((ReorientRelationshipRequest) req); >+ } else if (req instanceof SetRequest) { >+ return getSetCommand((SetRequest) req); >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getConfigureCommand(ConfigureRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCommand(CreateElementRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getSetCommand(SetRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getEditContextCommand(GetEditContextRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyReferenceCommand(DestroyReferenceRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getDuplicateCommand(DuplicateElementsRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getMoveCommand(MoveRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getReorientReferenceRelationshipCommand(ReorientReferenceRelationshipRequest req) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getReorientRelationshipCommand(ReorientRelationshipRequest req) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getMSLWrapper(ICommand cmd) { >+ return new ICommandProxy(cmd); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject getSemanticElement() { >+ return ViewUtil.resolveSemanticElement((View) getHost().getModel()); >+ } >+ >+ /** >+ * Finds container element for the new relationship of the specified type. >+ * Default implementation goes up by containment hierarchy starting from >+ * the specified element and returns the first element that is instance of >+ * the specified container class. >+ * >+ * @generated >+ */ >+ protected EObject getRelationshipContainer(EObject element, EClass containerClass, IElementType relationshipType) { >+ for (; element != null; element = element.eContainer()) { >+ if (containerClass.isSuperTypeOf(element.eClass())) { >+ return element; >+ } >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected static class LinkConstraints { >+ >+ /** >+ * @generated >+ */ >+ public static final LinkConstraints ControlFlow_4001 = createControlFlow_4001(); >+ >+ /** >+ * @generated >+ */ >+ private static LinkConstraints createControlFlow_4001() { >+ Map sourceEnv = new HashMap(3); >+ sourceEnv.put("oppositeEnd", org.eclipse.uml2.uml.UMLPackage.eINSTANCE.getActivityNode()); //$NON-NLS-1$ >+ UMLAbstractExpression sourceExpression = UMLOCLFactory.getExpression("self.oclIsKindOf(uml::ObjectNode) implies self.oclAsType(uml::ObjectNode).isControlType", //$NON-NLS-1$ >+ UMLPackage.eINSTANCE.getActivityNode(), sourceEnv); >+ Map targetEnv = new HashMap(3); >+ targetEnv.put("oppositeEnd", org.eclipse.uml2.uml.UMLPackage.eINSTANCE.getActivityNode()); //$NON-NLS-1$ >+ UMLAbstractExpression targetExpression = UMLOCLFactory.getExpression("self.oclIsKindOf(uml::ObjectNode) implies self.oclAsType(uml::ObjectNode).isControlType", //$NON-NLS-1$ >+ UMLPackage.eINSTANCE.getActivityNode(), targetEnv); >+ return new LinkConstraints(sourceExpression, targetExpression); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static final String OPPOSITE_END_VAR = "oppositeEnd"; //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ private UMLAbstractExpression srcEndInv; >+ >+ /** >+ * @generated >+ */ >+ private UMLAbstractExpression targetEndInv; >+ >+ /** >+ * @generated >+ */ >+ public LinkConstraints(UMLAbstractExpression sourceEnd, UMLAbstractExpression targetEnd) { >+ this.srcEndInv = sourceEnd; >+ this.targetEndInv = targetEnd; >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean canCreateLink(CreateRelationshipRequest req, boolean isBackDirected) { >+ Object source = req.getSource(); >+ Object target = req.getTarget(); >+ >+ UMLAbstractExpression sourceConstraint = isBackDirected ? targetEndInv : srcEndInv; >+ UMLAbstractExpression targetConstraint = null; >+ if (req.getTarget() != null) { >+ targetConstraint = isBackDirected ? srcEndInv : targetEndInv; >+ } >+ boolean isSourceAccepted = sourceConstraint != null ? evaluate(sourceConstraint, source, target, false) : true; >+ if (isSourceAccepted && targetConstraint != null) { >+ return evaluate(targetConstraint, target, source, true); >+ } >+ return isSourceAccepted; >+ } >+ >+ /** >+ * @generated >+ */ >+ private static boolean evaluate(UMLAbstractExpression constraint, Object sourceEnd, Object oppositeEnd, boolean clearEnv) { >+ Map evalEnv = Collections.singletonMap(OPPOSITE_END_VAR, oppositeEnd); >+ try { >+ Object val = constraint.evaluate(sourceEnd, evalEnv); >+ return (val instanceof Boolean) ? ((Boolean) val).booleanValue() : false; >+ } catch (Exception e) { >+ UMLDiagramEditorPlugin.getInstance().logError("Link constraint evaluation error", e); //$NON-NLS-1$ >+ return false; >+ } >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/parts/UMLExtNodeLabelEditPart.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/parts/UMLExtNodeLabelEditPart.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/parts/UMLExtNodeLabelEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/parts/UMLExtNodeLabelEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,85 @@ >+package org.eclipse.uml2.diagram.activity.edit.parts; >+ >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.geometry.Dimension; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.gef.EditPolicy; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Handle; >+import org.eclipse.gef.handles.AbstractHandle; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.NonResizableLabelEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.figures.LabelLocator; >+import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class UMLExtNodeLabelEditPart extends LabelEditPart { >+ >+ /** >+ * @generated >+ */ >+ public UMLExtNodeLabelEditPart(View view) { >+ super(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableLabelEditPolicy() { >+ >+ protected void replaceHandleDragEditPartsTracker(Handle handle) { >+ if (handle instanceof AbstractHandle) { >+ ((AbstractHandle) handle).setDragTracker(new DragEditPartsTrackerEx(getHost()) { >+ >+ protected boolean isMove() { >+ return true; >+ } >+ }); >+ } >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void refreshBounds() { >+ IFigure refFigure = ((GraphicalEditPart) getParent()).getFigure(); >+ int dx = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_X())).intValue(); >+ int dy = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_Y())).intValue(); >+ Point offset = new Point(dx, dy); >+ getFigure().getParent().setConstraint(getFigure(), new LabelLocator(refFigure, offset, getKeyPoint()) { >+ >+ public void relocate(IFigure target) { >+ Point location = getReferencePoint().getTranslated(getOffset()); >+ location.translate(-target.getBounds().width / 2, 0); >+ target.setLocation(location); >+ target.setSize(new Dimension(target.getPreferredSize().width, target.getPreferredSize().height)); >+ } >+ >+ protected Point getReferencePoint() { >+ return getLabelLocation(parent); >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ public Point getReferencePoint() { >+ return getLabelLocation(((GraphicalEditPart) getParent()).getFigure()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Point getLabelLocation(IFigure parent) { >+ return parent.getBounds().getBottom(); >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/OpaqueActionItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/OpaqueActionItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/OpaqueActionItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/OpaqueActionItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,245 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class OpaqueActionItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCommand(CreateElementRequest req) { >+ if (UMLElementTypes.OutputPin_3001 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getOpaqueAction_OutputValue()); >+ } >+ return getMSLWrapper(new CreateOutputPin_3001Command(req)); >+ } >+ return super.getCreateCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateOutputPin_3001Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateOutputPin_3001Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getOpaqueAction(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InputPin4ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InputPin4ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InputPin4ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InputPin4ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory; >+import org.eclipse.gmf.runtime.notation.NotationFactory; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.edit.parts.ActivityEditPart; >+import org.eclipse.uml2.diagram.activity.edit.parts.InputPinName4EditPart; >+import org.eclipse.uml2.diagram.activity.part.UMLVisualIDRegistry; >+ >+/** >+ * @generated >+ */ >+public class InputPin4ViewFactory extends AbstractShapeViewFactory { >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ styles.add(NotationFactory.eINSTANCE.createFontStyle()); >+ styles.add(NotationFactory.eINSTANCE.createDescriptionStyle()); >+ styles.add(NotationFactory.eINSTANCE.createFillStyle()); >+ styles.add(NotationFactory.eINSTANCE.createLineStyle()); >+ return styles; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) { >+ if (semanticHint == null) { >+ semanticHint = UMLVisualIDRegistry.getType(org.eclipse.uml2.diagram.activity.edit.parts.InputPin4EditPart.VISUAL_ID); >+ view.setType(semanticHint); >+ } >+ super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted); >+ if (!ActivityEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) { >+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); >+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ >+ shortcutAnnotation.getDetails().put("modelID", ActivityEditPart.MODEL_ID); //$NON-NLS-1$ >+ view.getEAnnotations().add(shortcutAnnotation); >+ } >+ getViewService().createNode(semanticAdapter, view, UMLVisualIDRegistry.getType(InputPinName4EditPart.VISUAL_ID), ViewUtil.APPEND, true, getPreferencesHint()); >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/ActivityItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,726 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; >+import org.eclipse.gmf.runtime.emf.commands.core.commands.DuplicateEObjectsCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.AcceptEventAction; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class ActivityItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCommand(CreateElementRequest req) { >+ if (UMLElementTypes.AcceptEventAction_2001 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateAcceptEventAction_2001Command(req)); >+ } >+ if (UMLElementTypes.AcceptEventAction_2002 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateAcceptEventAction_2002Command(req)); >+ } >+ if (UMLElementTypes.ActivityFinalNode_2003 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateActivityFinalNode_2003Command(req)); >+ } >+ if (UMLElementTypes.DecisionNode_2004 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateDecisionNode_2004Command(req)); >+ } >+ if (UMLElementTypes.MergeNode_2005 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateMergeNode_2005Command(req)); >+ } >+ if (UMLElementTypes.InitialNode_2006 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateInitialNode_2006Command(req)); >+ } >+ if (UMLElementTypes.StructuredActivityNode_2007 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Group()); >+ } >+ return getMSLWrapper(new CreateStructuredActivityNode_2007Command(req)); >+ } >+ if (UMLElementTypes.DataStoreNode_2008 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateDataStoreNode_2008Command(req)); >+ } >+ if (UMLElementTypes.CentralBufferNode_2009 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateCentralBufferNode_2009Command(req)); >+ } >+ if (UMLElementTypes.OpaqueAction_2010 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateOpaqueAction_2010Command(req)); >+ } >+ if (UMLElementTypes.FlowFinalNode_2011 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateFlowFinalNode_2011Command(req)); >+ } >+ if (UMLElementTypes.ForkNode_2012 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateForkNode_2012Command(req)); >+ } >+ if (UMLElementTypes.JoinNode_2013 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateJoinNode_2013Command(req)); >+ } >+ if (UMLElementTypes.Pin_2014 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreatePin_2014Command(req)); >+ } >+ if (UMLElementTypes.CreateObjectAction_2015 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateCreateObjectAction_2015Command(req)); >+ } >+ if (UMLElementTypes.AddStructuralFeatureValueAction_2016 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateAddStructuralFeatureValueAction_2016Command(req)); >+ } >+ if (UMLElementTypes.CallBehaviorAction_2017 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateCallBehaviorAction_2017Command(req)); >+ } >+ if (UMLElementTypes.CallOperationAction_2018 == req.getElementType()) { >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Node()); >+ } >+ return getMSLWrapper(new CreateCallOperationAction_2018Command(req)); >+ } >+ return super.getCreateCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateAcceptEventAction_2001Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateAcceptEventAction_2001Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateAcceptEventAction_2002Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateAcceptEventAction_2002Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ AcceptEventAction newElement = (AcceptEventAction) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ UMLElementTypes.Initializers.AcceptEventAction_2002.init(newElement); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateActivityFinalNode_2003Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateActivityFinalNode_2003Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateDecisionNode_2004Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateDecisionNode_2004Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateMergeNode_2005Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateMergeNode_2005Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateInitialNode_2006Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateInitialNode_2006Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateStructuredActivityNode_2007Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateStructuredActivityNode_2007Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateDataStoreNode_2008Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateDataStoreNode_2008Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateCentralBufferNode_2009Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateCentralBufferNode_2009Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateOpaqueAction_2010Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateOpaqueAction_2010Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateFlowFinalNode_2011Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateFlowFinalNode_2011Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateForkNode_2012Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateForkNode_2012Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateJoinNode_2013Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateJoinNode_2013Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreatePin_2014Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreatePin_2014Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateCreateObjectAction_2015Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateCreateObjectAction_2015Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateAddStructuralFeatureValueAction_2016Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateAddStructuralFeatureValueAction_2016Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateCallBehaviorAction_2017Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateCallBehaviorAction_2017Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateCallOperationAction_2018Command extends CreateElementCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateCallOperationAction_2018Command(CreateElementRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected EObject getElementToEdit() { >+ EObject container = ((CreateElementRequest) getRequest()).getContainer(); >+ if (container instanceof View) { >+ container = ((View) container).getElement(); >+ } >+ return container; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getDuplicateCommand(DuplicateElementsRequest req) { >+ TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain(); >+ return getMSLWrapper(new DuplicateAnythingCommand(editingDomain, req)); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class DuplicateAnythingCommand extends DuplicateEObjectsCommand { >+ >+ /** >+ * @generated >+ */ >+ public DuplicateAnythingCommand(TransactionalEditingDomain editingDomain, DuplicateElementsRequest req) { >+ super(editingDomain, req.getLabel(), req.getElementsToBeDuplicated(), req.getAllDuplicatedElementsMap()); >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName3ViewFactory.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName3ViewFactory.java >diff -N src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName3ViewFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/view/factories/InputPinName3ViewFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+package org.eclipse.uml2.diagram.activity.view.factories; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; >+import org.eclipse.gmf.runtime.diagram.ui.util.MeasurementUnitHelper; >+import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractLabelViewFactory; >+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; >+import org.eclipse.gmf.runtime.notation.Location; >+import org.eclipse.gmf.runtime.notation.Node; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class InputPinName3ViewFactory extends AbstractLabelViewFactory { >+ >+ /** >+ * @generated >+ */ >+ public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) { >+ Node view = (Node) super.createView(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint); >+ Location location = (Location) view.getLayoutConstraint(); >+ IMapMode mapMode = MeasurementUnitHelper.getMapMode(containerView.getDiagram().getMeasurementUnit()); >+ location.setX(mapMode.DPtoLP(0)); >+ location.setY(mapMode.DPtoLP(5)); >+ return view; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List createStyles(View view) { >+ List styles = new ArrayList(); >+ return styles; >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPinEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPinEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPinEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPinEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class InputPinEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/DecisionNodeEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/DecisionNodeEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/DecisionNodeEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/DecisionNodeEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class DecisionNodeEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin4EditHelperAdvice.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin4EditHelperAdvice.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin4EditHelperAdvice.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/InputPin4EditHelperAdvice.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,9 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice; >+ >+/** >+ * @generated >+ */ >+public class InputPin4EditHelperAdvice extends AbstractEditHelperAdvice { >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/StructuredActivityNodeEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/StructuredActivityNodeEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/StructuredActivityNodeEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/StructuredActivityNodeEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+/** >+ * @generated >+ */ >+public class StructuredActivityNodeEditHelper extends UMLBaseEditHelper { >+} >Index: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditor.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditor.java >diff -N src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditor.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/part/UMLDiagramEditor.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,207 @@ >+package org.eclipse.uml2.diagram.activity.part; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IMarker; >+import org.eclipse.core.resources.IWorkspaceRoot; >+import org.eclipse.core.resources.ResourcesPlugin; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.NullProgressMonitor; >+import org.eclipse.draw2d.DelegatingLayout; >+import org.eclipse.draw2d.FreeformLayer; >+import org.eclipse.draw2d.LayeredPane; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.gef.LayerConstants; >+import org.eclipse.gmf.runtime.common.ui.services.marker.MarkerNavigationService; >+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramRootEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocumentProvider; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.document.StorageDiagramDocumentProvider; >+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor; >+import org.eclipse.jface.dialogs.ErrorDialog; >+import org.eclipse.jface.dialogs.IMessageProvider; >+import org.eclipse.jface.dialogs.MessageDialog; >+import org.eclipse.jface.window.Window; >+import org.eclipse.osgi.util.NLS; >+import org.eclipse.swt.widgets.Shell; >+import org.eclipse.ui.IEditorInput; >+import org.eclipse.ui.IEditorMatchingStrategy; >+import org.eclipse.ui.IEditorReference; >+import org.eclipse.ui.IFileEditorInput; >+import org.eclipse.ui.PlatformUI; >+import org.eclipse.ui.dialogs.SaveAsDialog; >+import org.eclipse.ui.ide.IGotoMarker; >+import org.eclipse.ui.part.FileEditorInput; >+import org.eclipse.uml2.diagram.activity.edit.parts.UMLEditPartFactory; >+ >+/** >+ * @generated >+ */ >+public class UMLDiagramEditor extends DiagramDocumentEditor implements IGotoMarker { >+ >+ /** >+ * @generated >+ */ >+ public static final String ID = "org.eclipse.uml2.diagram.activity.part.UMLDiagramEditorID"; //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ public UMLDiagramEditor() { >+ super(true); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getEditingDomainID() { >+ return "org.eclipse.uml2.diagram.activity.EditingDomain"; //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ protected TransactionalEditingDomain createEditingDomain() { >+ TransactionalEditingDomain domain = super.createEditingDomain(); >+ domain.setID(getEditingDomainID()); >+ return domain; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void configureGraphicalViewer() { >+ super.configureGraphicalViewer(); >+ DiagramRootEditPart root = (DiagramRootEditPart) getDiagramGraphicalViewer().getRootEditPart(); >+ LayeredPane printableLayers = (LayeredPane) root.getLayer(LayerConstants.PRINTABLE_LAYERS); >+ FreeformLayer extLabelsLayer = new FreeformLayer(); >+ extLabelsLayer.setLayoutManager(new DelegatingLayout()); >+ printableLayers.addLayerAfter(extLabelsLayer, UMLEditPartFactory.EXTERNAL_NODE_LABELS_LAYER, LayerConstants.PRIMARY_LAYER); >+ LayeredPane scalableLayers = (LayeredPane) root.getLayer(LayerConstants.SCALABLE_LAYERS); >+ FreeformLayer scaledFeedbackLayer = new FreeformLayer(); >+ scaledFeedbackLayer.setEnabled(false); >+ scalableLayers.addLayerAfter(scaledFeedbackLayer, LayerConstants.SCALED_FEEDBACK_LAYER, DiagramRootEditPart.DECORATION_UNPRINTABLE_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected PreferencesHint getPreferencesHint() { >+ return UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT; >+ } >+ >+ /** >+ * @generated >+ */ >+ public String getContributorId() { >+ return UMLDiagramEditorPlugin.ID; >+ } >+ >+ /** >+ * @generated >+ */ >+ private String contentObjectURI; >+ >+ /** >+ * @generated >+ */ >+ protected void setDocumentProvider(IEditorInput input) { >+ if (input instanceof IFileEditorInput) { >+ setDocumentProvider(new UMLDocumentProvider(contentObjectURI)); >+ } else { >+ setDocumentProvider(new StorageDiagramDocumentProvider()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void gotoMarker(IMarker marker) { >+ MarkerNavigationService.getInstance().gotoMarker(this, marker); >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean isSaveAsAllowed() { >+ return true; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void doSaveAs() { >+ performSaveAs(new NullProgressMonitor()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performSaveAs(IProgressMonitor progressMonitor) { >+ Shell shell = getSite().getShell(); >+ IEditorInput input = getEditorInput(); >+ SaveAsDialog dialog = new SaveAsDialog(shell); >+ IFile original = input instanceof IFileEditorInput ? ((IFileEditorInput) input).getFile() : null; >+ if (original != null) { >+ dialog.setOriginalFile(original); >+ } >+ dialog.create(); >+ IDocumentProvider provider = getDocumentProvider(); >+ if (provider == null) { >+ // editor has been programmatically closed while the dialog was open >+ return; >+ } >+ if (provider.isDeleted(input) && original != null) { >+ String message = NLS.bind("The original file ''{0}'' has been deleted.", original.getName()); >+ dialog.setErrorMessage(null); >+ dialog.setMessage(message, IMessageProvider.WARNING); >+ } >+ if (dialog.open() == Window.CANCEL) { >+ if (progressMonitor != null) { >+ progressMonitor.setCanceled(true); >+ } >+ return; >+ } >+ IPath filePath = dialog.getResult(); >+ if (filePath == null) { >+ if (progressMonitor != null) { >+ progressMonitor.setCanceled(true); >+ } >+ return; >+ } >+ IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); >+ IFile file = workspaceRoot.getFile(filePath); >+ final IEditorInput newInput = new FileEditorInput(file); >+ // Check if the editor is already open >+ IEditorMatchingStrategy matchingStrategy = getEditorDescriptor().getEditorMatchingStrategy(); >+ IEditorReference[] editorRefs = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences(); >+ for (int i = 0; i < editorRefs.length; i++) { >+ if (matchingStrategy.matches(editorRefs[i], newInput)) { >+ MessageDialog.openWarning(shell, "Problem During Save As...", "Save could not be completed. Target file is already open in another editor."); >+ return; >+ } >+ } >+ boolean success = false; >+ try { >+ provider.aboutToChange(newInput); >+ getDocumentProvider(newInput).saveDocument(progressMonitor, newInput, getDocumentProvider().getDocument(getEditorInput()), true); >+ success = true; >+ } catch (CoreException x) { >+ IStatus status = x.getStatus(); >+ if (status == null || status.getSeverity() != IStatus.CANCEL) { >+ ErrorDialog.openError(shell, "Save Problems", "Could not save file.", x.getStatus()); >+ } >+ } finally { >+ provider.changed(newInput); >+ if (success) { >+ setInput(newInput); >+ } >+ } >+ if (progressMonitor != null) { >+ progressMonitor.setCanceled(!success); >+ } >+ } >+ >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPin2ItemSemanticEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPin2ItemSemanticEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPin2ItemSemanticEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/OutputPin2ItemSemanticEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,199 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.emf.ecore.EAnnotation; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand; >+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.uml2.diagram.activity.providers.UMLElementTypes; >+import org.eclipse.uml2.uml.Activity; >+import org.eclipse.uml2.uml.ActivityNode; >+import org.eclipse.uml2.uml.ControlFlow; >+import org.eclipse.uml2.uml.ObjectFlow; >+import org.eclipse.uml2.uml.UMLPackage; >+ >+/** >+ * @generated >+ */ >+public class OutputPin2ItemSemanticEditPolicy extends UMLBaseItemSemanticEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ protected Command getDestroyElementCommand(DestroyElementRequest req) { >+ return getMSLWrapper(new DestroyElementCommand(req) { >+ >+ protected EObject getElementToDestroy() { >+ View view = (View) getHost().getModel(); >+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation != null) { >+ return view; >+ } >+ return super.getElementToDestroy(); >+ } >+ >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ if (UMLElementTypes.ControlFlow_4001 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingControlFlow4001Command(req) : getCreateCompleteIncomingControlFlow4001Command(req); >+ } >+ if (UMLElementTypes.ObjectFlow_4002 == req.getElementType()) { >+ return req.getTarget() == null ? getCreateStartOutgoingObjectFlow4002Command(req) : getCreateCompleteIncomingObjectFlow4002Command(req); >+ } >+ return super.getCreateRelationshipCommand(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (!UMLBaseItemSemanticEditPolicy.LinkConstraints.ControlFlow_4001.canCreateLink(req, false)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingControlFlow4001Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingControlFlow4001Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingControlFlow4001Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ControlFlow newElement = (ControlFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateStartOutgoingObjectFlow4002Command(CreateRelationshipRequest req) { >+ return new Command() { >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Command getCreateCompleteIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ if (!(req.getSource() instanceof ActivityNode)) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ final Activity element = (Activity) getRelationshipContainer(req.getSource(), UMLPackage.eINSTANCE.getActivity(), req.getElementType()); >+ if (element == null) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ if (req.getContainmentFeature() == null) { >+ req.setContainmentFeature(UMLPackage.eINSTANCE.getActivity_Edge()); >+ } >+ return getMSLWrapper(new CreateIncomingObjectFlow4002Command(req) { >+ >+ protected EObject getElementToEdit() { >+ return element; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class CreateIncomingObjectFlow4002Command extends CreateRelationshipCommand { >+ >+ /** >+ * @generated >+ */ >+ public CreateIncomingObjectFlow4002Command(CreateRelationshipRequest req) { >+ super(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EClass getEClassToEdit() { >+ return UMLPackage.eINSTANCE.getActivity(); >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected void setElementToEdit(EObject element) { >+ throw new UnsupportedOperationException(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EObject doDefaultElementCreation() { >+ ObjectFlow newElement = (ObjectFlow) super.doDefaultElementCreation(); >+ if (newElement != null) { >+ newElement.setTarget((ActivityNode) getTarget()); >+ newElement.setSource((ActivityNode) getSource()); >+ } >+ return newElement; >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/UMLTextSelectionEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/UMLTextSelectionEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/UMLTextSelectionEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/UMLTextSelectionEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,192 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import org.eclipse.draw2d.ColorConstants; >+import org.eclipse.draw2d.Figure; >+import org.eclipse.draw2d.Graphics; >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.Label; >+import org.eclipse.draw2d.RectangleFigure; >+import org.eclipse.draw2d.geometry.Rectangle; >+import org.eclipse.gef.LayerConstants; >+import org.eclipse.gef.editpolicies.SelectionEditPolicy; >+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel; >+ >+/** >+ * @generated >+ */ >+public class UMLTextSelectionEditPolicy extends SelectionEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ private IFigure selectionFeedbackFigure; >+ >+ /** >+ * @generated >+ */ >+ private IFigure focusFeedbackFigure; >+ >+ /** >+ * @generated >+ */ >+ protected void showPrimarySelection() { >+ if (getHostFigure() instanceof WrapLabel) { >+ ((WrapLabel) getHostFigure()).setSelected(true); >+ ((WrapLabel) getHostFigure()).setFocus(true); >+ } else { >+ showSelection(); >+ showFocus(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void showSelection() { >+ if (getHostFigure() instanceof WrapLabel) { >+ ((WrapLabel) getHostFigure()).setSelected(true); >+ ((WrapLabel) getHostFigure()).setFocus(false); >+ } else { >+ hideSelection(); >+ addFeedback(selectionFeedbackFigure = createSelectionFeedbackFigure()); >+ refreshSelectionFeedback(); >+ hideFocus(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void hideSelection() { >+ if (getHostFigure() instanceof WrapLabel) { >+ ((WrapLabel) getHostFigure()).setSelected(false); >+ ((WrapLabel) getHostFigure()).setFocus(false); >+ } else { >+ if (selectionFeedbackFigure != null) { >+ removeFeedback(selectionFeedbackFigure); >+ selectionFeedbackFigure = null; >+ } >+ hideFocus(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void showFocus() { >+ if (getHostFigure() instanceof WrapLabel) { >+ ((WrapLabel) getHostFigure()).setFocus(true); >+ } else { >+ hideFocus(); >+ addFeedback(focusFeedbackFigure = createFocusFeedbackFigure()); >+ refreshFocusFeedback(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void hideFocus() { >+ if (getHostFigure() instanceof WrapLabel) { >+ ((WrapLabel) getHostFigure()).setFocus(false); >+ } else { >+ if (focusFeedbackFigure != null) { >+ removeFeedback(focusFeedbackFigure); >+ focusFeedbackFigure = null; >+ } >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure getFeedbackLayer() { >+ return getLayer(LayerConstants.SCALED_FEEDBACK_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Rectangle getFeedbackBounds() { >+ Rectangle bounds; >+ if (getHostFigure() instanceof Label) { >+ bounds = ((Label) getHostFigure()).getTextBounds(); >+ bounds.intersect(getHostFigure().getBounds()); >+ } else { >+ bounds = getHostFigure().getBounds().getCopy(); >+ } >+ getHostFigure().getParent().translateToAbsolute(bounds); >+ getFeedbackLayer().translateToRelative(bounds); >+ return bounds; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createSelectionFeedbackFigure() { >+ if (getHostFigure() instanceof Label) { >+ Label feedbackFigure = new Label(); >+ feedbackFigure.setOpaque(true); >+ feedbackFigure.setBackgroundColor(ColorConstants.menuBackgroundSelected); >+ feedbackFigure.setForegroundColor(ColorConstants.menuForegroundSelected); >+ return feedbackFigure; >+ } else { >+ RectangleFigure feedbackFigure = new RectangleFigure(); >+ feedbackFigure.setFill(false); >+ return feedbackFigure; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFocusFeedbackFigure() { >+ return new Figure() { >+ >+ protected void paintFigure(Graphics graphics) { >+ graphics.drawFocus(getBounds().getResized(-1, -1)); >+ } >+ }; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void updateLabel(Label target) { >+ Label source = (Label) getHostFigure(); >+ target.setText(source.getText()); >+ target.setTextAlignment(source.getTextAlignment()); >+ target.setFont(source.getFont()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshSelectionFeedback() { >+ if (selectionFeedbackFigure != null) { >+ if (selectionFeedbackFigure instanceof Label) { >+ updateLabel((Label) selectionFeedbackFigure); >+ selectionFeedbackFigure.setBounds(getFeedbackBounds()); >+ } else { >+ selectionFeedbackFigure.setBounds(getFeedbackBounds().expand(5, 5)); >+ } >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshFocusFeedback() { >+ if (focusFeedbackFigure != null) { >+ focusFeedbackFigure.setBounds(getFeedbackBounds()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void refreshFeedback() { >+ refreshSelectionFeedback(); >+ refreshFocusFeedback(); >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/commands/UMLReorientConnectionViewCommand.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/commands/UMLReorientConnectionViewCommand.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/commands/UMLReorientConnectionViewCommand.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/commands/UMLReorientConnectionViewCommand.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,69 @@ >+package org.eclipse.uml2.diagram.activity.edit.commands; >+ >+import java.util.List; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.emf.transaction.TransactionalEditingDomain; >+import org.eclipse.gmf.runtime.common.core.command.CommandResult; >+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand; >+import org.eclipse.gmf.runtime.notation.Edge; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class UMLReorientConnectionViewCommand extends AbstractTransactionalCommand { >+ >+ /** >+ * @generated >+ */ >+ private IAdaptable edgeAdaptor; >+ >+ /** >+ * @generated >+ */ >+ public UMLReorientConnectionViewCommand(TransactionalEditingDomain editingDomain, String label) { >+ super(editingDomain, label, null); >+ } >+ >+ /** >+ * @generated >+ */ >+ public List getAffectedFiles() { >+ View view = (View) edgeAdaptor.getAdapter(View.class); >+ if (view != null) { >+ return getWorkspaceFiles(view); >+ } >+ return super.getAffectedFiles(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public IAdaptable getEdgeAdaptor() { >+ return edgeAdaptor; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setEdgeAdaptor(IAdaptable edgeAdaptor) { >+ this.edgeAdaptor = edgeAdaptor; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected CommandResult doExecuteWithResult(IProgressMonitor progressMonitor, IAdaptable info) { >+ assert null != edgeAdaptor : "Null child in UMLReorientConnectionViewCommand"; //$NON-NLS-1$ >+ Edge edge = (Edge) getEdgeAdaptor().getAdapter(Edge.class); >+ assert null != edge : "Null edge in UMLReorientConnectionViewCommand"; //$NON-NLS-1$ >+ >+ View tempView = edge.getSource(); >+ edge.setSource(edge.getTarget()); >+ edge.setTarget(tempView); >+ >+ return CommandResult.newOKCommandResult(); >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/policies/UMLExtNodeLabelHostLayoutEditPolicy.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/policies/UMLExtNodeLabelHostLayoutEditPolicy.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/policies/UMLExtNodeLabelHostLayoutEditPolicy.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/policies/UMLExtNodeLabelHostLayoutEditPolicy.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,211 @@ >+package org.eclipse.uml2.diagram.activity.edit.policies; >+ >+import java.util.ArrayList; >+import java.util.Iterator; >+import java.util.List; >+ >+import org.eclipse.draw2d.geometry.Rectangle; >+import org.eclipse.gef.EditPart; >+import org.eclipse.gef.GraphicalEditPart; >+import org.eclipse.gef.Request; >+import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.editpolicies.LayoutEditPolicy; >+import org.eclipse.gef.requests.ChangeBoundsRequest; >+import org.eclipse.gef.requests.GroupRequest; >+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy; >+import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.runtime.notation.View; >+ >+/** >+ * @generated >+ */ >+public class UMLExtNodeLabelHostLayoutEditPolicy extends XYLayoutEditPolicy { >+ >+ /** >+ * @generated >+ */ >+ private LayoutEditPolicy realLayoutEditPolicy; >+ >+ /** >+ * @generated >+ */ >+ public LayoutEditPolicy getRealLayoutEditPolicy() { >+ return realLayoutEditPolicy; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setRealLayoutEditPolicy(LayoutEditPolicy realLayoutEditPolicy) { >+ this.realLayoutEditPolicy = realLayoutEditPolicy; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isExternalLabel(EditPart editPart) { >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected final List getExternalLabels(GroupRequest request) { >+ List editParts = new ArrayList(); >+ if (request.getEditParts() != null) { >+ for (Iterator it = request.getEditParts().iterator(); it.hasNext();) { >+ EditPart editPart = (EditPart) it.next(); >+ if (isExternalLabel(editPart)) { >+ editParts.add(editPart); >+ } >+ } >+ } >+ return editParts; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Command getCommand(Request request) { >+ if (REQ_MOVE_CHILDREN.equals(request.getType())) { >+ ChangeBoundsRequest cbRequest = (ChangeBoundsRequest) request; >+ List extLabels = getExternalLabels(cbRequest); >+ if (!extLabels.isEmpty()) { >+ List editParts = cbRequest.getEditParts(); >+ Command cmd = null; >+ if (realLayoutEditPolicy != null && editParts.size() > extLabels.size()) { >+ List other = new ArrayList(editParts); >+ other.removeAll(extLabels); >+ cbRequest.setEditParts(other); >+ cmd = realLayoutEditPolicy.getCommand(request); >+ } >+ cbRequest.setEditParts(extLabels); >+ Command extLabelsCmd = getMoveChildrenCommand(request); >+ cbRequest.setEditParts(editParts); >+ return cmd == null ? extLabelsCmd : cmd.chain(extLabelsCmd); >+ } >+ } >+ if (request instanceof GroupRequest) { >+ List extLabels = getExternalLabels((GroupRequest) request); >+ if (!extLabels.isEmpty()) { >+ return null; >+ } >+ } >+ return realLayoutEditPolicy == null ? null : realLayoutEditPolicy.getCommand(request); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected Object getConstraintFor(ChangeBoundsRequest request, GraphicalEditPart child) { >+ int dx = ((Integer) ViewUtil.getStructuralFeatureValue((View) child.getModel(), NotationPackage.eINSTANCE.getLocation_X())).intValue(); >+ int dy = ((Integer) ViewUtil.getStructuralFeatureValue((View) child.getModel(), NotationPackage.eINSTANCE.getLocation_Y())).intValue(); >+ Rectangle r = new Rectangle(dx, dy, 0, 0); >+ child.getFigure().translateToAbsolute(r); >+ r.translate(request.getMoveDelta()); >+ child.getFigure().translateToRelative(r); >+ return r; >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean understandsRequest(Request req) { >+ if (realLayoutEditPolicy != null && realLayoutEditPolicy.understandsRequest(req)) { >+ return true; >+ } >+ return super.understandsRequest(req); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void decorateChild(EditPart child) { >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setHost(EditPart host) { >+ super.setHost(host); >+ if (realLayoutEditPolicy != null) { >+ realLayoutEditPolicy.setHost(host); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void activate() { >+ super.activate(); >+ if (realLayoutEditPolicy != null) { >+ realLayoutEditPolicy.activate(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void deactivate() { >+ super.deactivate(); >+ if (realLayoutEditPolicy != null) { >+ realLayoutEditPolicy.deactivate(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public EditPart getTargetEditPart(Request request) { >+ if (realLayoutEditPolicy != null) { >+ return realLayoutEditPolicy.getTargetEditPart(request); >+ } else { >+ return super.getTargetEditPart(request); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void showSourceFeedback(Request request) { >+ if (realLayoutEditPolicy != null) { >+ realLayoutEditPolicy.showSourceFeedback(request); >+ } else { >+ super.showSourceFeedback(request); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void eraseSourceFeedback(Request request) { >+ if (realLayoutEditPolicy != null) { >+ realLayoutEditPolicy.eraseSourceFeedback(request); >+ } else { >+ super.eraseSourceFeedback(request); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void showTargetFeedback(Request request) { >+ if (realLayoutEditPolicy != null) { >+ realLayoutEditPolicy.showTargetFeedback(request); >+ } else { >+ super.showTargetFeedback(request); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void eraseTargetFeedback(Request request) { >+ if (realLayoutEditPolicy != null) { >+ realLayoutEditPolicy.eraseTargetFeedback(request); >+ } else { >+ super.eraseTargetFeedback(request); >+ } >+ } >+} >Index: src/org/eclipse/uml2/diagram/activity/edit/helpers/UMLBaseEditHelper.java >=================================================================== >RCS file: src/org/eclipse/uml2/diagram/activity/edit/helpers/UMLBaseEditHelper.java >diff -N src/org/eclipse/uml2/diagram/activity/edit/helpers/UMLBaseEditHelper.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/uml2/diagram/activity/edit/helpers/UMLBaseEditHelper.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,68 @@ >+package org.eclipse.uml2.diagram.activity.edit.helpers; >+ >+import org.eclipse.gmf.runtime.common.core.command.CompositeCommand; >+import org.eclipse.gmf.runtime.common.core.command.ICommand; >+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelper; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; >+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest; >+ >+/** >+ * @generated >+ */ >+public class UMLBaseEditHelper extends AbstractEditHelper { >+ >+ /** >+ * @generated >+ */ >+ public static final String EDIT_POLICY_COMMAND = "edit policy command"; //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ protected ICommand getInsteadCommand(IEditCommandRequest req) { >+ ICommand epCommand = (ICommand) req.getParameter(EDIT_POLICY_COMMAND); >+ req.setParameter(EDIT_POLICY_COMMAND, null); >+ ICommand ehCommand = super.getInsteadCommand(req); >+ if (epCommand == null) { >+ return ehCommand; >+ } >+ if (ehCommand == null) { >+ return epCommand; >+ } >+ CompositeCommand command = new CompositeCommand(null); >+ command.add(epCommand); >+ command.add(ehCommand); >+ return command; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected ICommand getCreateCommand(CreateElementRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected ICommand getCreateRelationshipCommand(CreateRelationshipRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected ICommand getDestroyReferenceCommand(DestroyReferenceRequest req) { >+ return null; >+ } >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 161574
: 52853