diff options
author | Pauline DEVILLE | 2017-01-24 16:21:03 +0000 |
---|---|---|
committer | Florian Noyrit | 2017-04-19 09:25:23 +0000 |
commit | 6bc616d24478e1218eb008de536e26f08045af51 (patch) | |
tree | 78b2c02892425a7ecfb55be74e8534670aa00178 /plugins | |
parent | dbe83a2853b5c197d24447dd215146ec0a31a256 (diff) | |
download | org.eclipse.papyrus-6bc616d24478e1218eb008de536e26f08045af51.tar.gz org.eclipse.papyrus-6bc616d24478e1218eb008de536e26f08045af51.tar.xz org.eclipse.papyrus-6bc616d24478e1218eb008de536e26f08045af51.zip |
Bug 510418 - [ActivityDiagram] Pin of ReadSelfAction should be create
and update automatically
Change-Id: I4bd34e078f00d2f653b96682f68371ce7c288ba4
Signed-off-by: Pauline DEVILLE <pauline.deville@cea.fr>
Diffstat (limited to 'plugins')
8 files changed, 123 insertions, 0 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/css/default-theme-contribution-activity-diagram.css b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/css/default-theme-contribution-activity-diagram.css index 3f55a2de3a2..b476c26c188 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/css/default-theme-contribution-activity-diagram.css +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/css/default-theme-contribution-activity-diagram.css @@ -7,6 +7,7 @@ CreateLinkAction, CreateObjectAction,
DestroyLinkAction,
ReadLinkAction,
+ReadSelfAction,
ReadStructuralFeatureAction,
SendSignalAction,
StartClassifierBehaviorAction,
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/advices/ReadSelfActionEditHelperAdvice.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/advices/ReadSelfActionEditHelperAdvice.java new file mode 100644 index 00000000000..1bf94a1a6da --- /dev/null +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/advices/ReadSelfActionEditHelperAdvice.java @@ -0,0 +1,56 @@ +/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.diagram.activity.edit.advices;
+
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.uml.diagram.activity.edit.commands.util.PinUpdateCommand;
+import org.eclipse.papyrus.uml.diagram.activity.edit.utils.updater.IPinUpdater;
+import org.eclipse.papyrus.uml.diagram.activity.edit.utils.updater.PinUpdaterFactory;
+import org.eclipse.papyrus.uml.diagram.activity.edit.utils.updater.preferences.AutomatedModelCompletionPreferencesInitializer;
+import org.eclipse.papyrus.uml.diagram.activity.edit.utils.updater.preferences.IAutomatedModelCompletionPreferencesConstants;
+import org.eclipse.papyrus.uml.diagram.common.Activator;
+import org.eclipse.uml2.uml.ReadSelfAction;
+
+/**
+ *
+ * Pin of ReadSelfAction should be create and update automatically
+ *
+ */
+public class ReadSelfActionEditHelperAdvice extends AbstractEditHelperAdvice {
+
+ /**
+ * @see org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice#getAfterConfigureCommand(org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest)
+ *
+ * @param request
+ * @return
+ */
+ @Override
+ protected ICommand getAfterConfigureCommand(ConfigureRequest request) {
+ // 1] get the preference for ReadSelfAction
+ final IPreferenceStore prefStore = Activator.getDefault().getPreferenceStore();
+ boolean synchronizePin = (prefStore.getString(IAutomatedModelCompletionPreferencesConstants.READ_SELF_ACTION_ACCELERATOR).equals(AutomatedModelCompletionPreferencesInitializer.PIN_SYNCHRONIZATION));
+ // 2] check preference
+ if (synchronizePin) {
+ ReadSelfAction editedModelElement = (ReadSelfAction) request.getElementToConfigure();
+ if (editedModelElement != null) {
+ // 3] call the command for the ReadSelfAction
+ IPinUpdater<ReadSelfAction> updater = PinUpdaterFactory.getInstance().instantiate(editedModelElement);
+ return new PinUpdateCommand<ReadSelfAction>("Update read self action pins", updater, editedModelElement);
+ }
+ }
+ return null;
+ }
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/PinUpdaterFactory.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/PinUpdaterFactory.java index ce74266e604..a8d08072c4f 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/PinUpdaterFactory.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/PinUpdaterFactory.java @@ -28,6 +28,7 @@ import org.eclipse.uml2.uml.AcceptCallAction; import org.eclipse.uml2.uml.AcceptEventAction;
import org.eclipse.papyrus.uml.diagram.activity.edit.utils.updater.intermediateactions.StartClassifierBehaviorActionPinUpdater;
import org.eclipse.papyrus.uml.diagram.activity.edit.utils.updater.intermediateactions.StartObjectBehaviorActionPinUpdater;
+import org.eclipse.papyrus.uml.diagram.activity.edit.utils.updater.intermediateactions.ReadSelfActionPinUpdater;
import org.eclipse.uml2.uml.ActivityNode;
import org.eclipse.uml2.uml.AddStructuralFeatureValueAction;
import org.eclipse.uml2.uml.CallBehaviorAction;
@@ -37,6 +38,7 @@ import org.eclipse.uml2.uml.CreateObjectAction; import org.eclipse.uml2.uml.DestroyLinkAction;
import org.eclipse.uml2.uml.ReadLinkAction;
import org.eclipse.uml2.uml.ReadStructuralFeatureAction;
+import org.eclipse.uml2.uml.ReadSelfAction;
import org.eclipse.uml2.uml.SendSignalAction;
import org.eclipse.uml2.uml.TestIdentityAction;
import org.eclipse.uml2.uml.ValueSpecificationAction;
@@ -111,6 +113,8 @@ public class PinUpdaterFactory { updater = (IPinUpdater<T>) new StartClassifierBehaviorActionPinUpdater();
} else if (node instanceof StartObjectBehaviorAction) {
updater = (IPinUpdater<T>) new StartObjectBehaviorActionPinUpdater();
+ } else if (node instanceof ReadSelfAction) {
+ updater = (IPinUpdater<T>) new ReadSelfActionPinUpdater();
}
return updater;
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/intermediateactions/ReadSelfActionPinUpdater.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/intermediateactions/ReadSelfActionPinUpdater.java new file mode 100644 index 00000000000..4e2e290bd51 --- /dev/null +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/intermediateactions/ReadSelfActionPinUpdater.java @@ -0,0 +1,54 @@ +/***************************************************************************** + * Copyright (c) 2016 CEA LIST and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * J�r�mie TATIBOUET (CEA LIST) - Initial API and implementation + * S�bastien REVOL (CEA LIST) - Initial API and implementation + * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Bug 496905 + * + *****************************************************************************/ + +package org.eclipse.papyrus.uml.diagram.activity.edit.utils.updater.intermediateactions; + +import org.eclipse.papyrus.uml.diagram.activity.edit.utils.updater.AbstractActionPinUpdater; +import org.eclipse.uml2.uml.Activity; +import org.eclipse.uml2.uml.OutputPin; +import org.eclipse.uml2.uml.ReadSelfAction; +import org.eclipse.uml2.uml.UMLFactory; + +/** + * + * Pin of ReadSelfAction should be create and update automatically + * + */ +public class ReadSelfActionPinUpdater extends AbstractActionPinUpdater<ReadSelfAction> { + + /** + * @see org.eclipse.papyrus.uml.diagram.activity.edit.utils.updater.IPinUpdater#updatePins(org.eclipse.uml2.uml.ActivityNode) + * + * @param node + */ + @Override + public void updatePins(ReadSelfAction node) { + // 1] create the result pin + // the type of the result output pin is the "context" + if (node != null) { + node.setName("this"); + OutputPin result = UMLFactory.eINSTANCE.createOutputPin(); + result.setName("result"); + result.setLower(1); + result.setUpper(1); + Activity container = node.getActivity(); + if (container != null) { + result.setType(container.getContext()); + } + node.setResult(result); + } + } + +} diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/ActivityAutomatedModelCompletionPreferencePage.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/ActivityAutomatedModelCompletionPreferencePage.java index c5c0ff85011..c2ca69a19b2 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/ActivityAutomatedModelCompletionPreferencePage.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/ActivityAutomatedModelCompletionPreferencePage.java @@ -26,6 +26,7 @@ import org.eclipse.uml2.uml.CreateLinkAction; import org.eclipse.uml2.uml.CreateObjectAction; import org.eclipse.uml2.uml.DestroyLinkAction; import org.eclipse.uml2.uml.ReadLinkAction; +import org.eclipse.uml2.uml.ReadSelfAction; import org.eclipse.uml2.uml.ReadStructuralFeatureAction; import org.eclipse.uml2.uml.StartClassifierBehaviorAction; import org.eclipse.uml2.uml.StartObjectBehaviorAction; @@ -84,6 +85,7 @@ public class ActivityAutomatedModelCompletionPreferencePage extends AbstractAuto actionList.add(CreateLinkAction.class); actionList.add(CreateObjectAction.class); actionList.add(DestroyLinkAction.class); + actionList.add(ReadSelfAction.class); actionList.add(ReadLinkAction.class); actionList.add(ReadStructuralFeatureAction.class); actionList.add(StartClassifierBehaviorAction.class); diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/AutomatedModelCompletionPreferencesInitializer.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/AutomatedModelCompletionPreferencesInitializer.java index a3e2d8ac9e0..9478b9c28b4 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/AutomatedModelCompletionPreferencesInitializer.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/AutomatedModelCompletionPreferencesInitializer.java @@ -50,6 +50,7 @@ public class AutomatedModelCompletionPreferencesInitializer extends AbstractPref store.setDefault(IAutomatedModelCompletionPreferencesConstants.CREATE_LINK_ACTION_ACCELERATOR, PIN_SYNCHRONIZATION); store.setDefault(IAutomatedModelCompletionPreferencesConstants.CREATE_OBJECT_ACTION_ACCELERATOR, PIN_SYNCHRONIZATION); store.setDefault(IAutomatedModelCompletionPreferencesConstants.DESTROY_LINK_ACTION_ACCELERATOR, PIN_SYNCHRONIZATION); + store.setDefault(IAutomatedModelCompletionPreferencesConstants.READ_SELF_ACTION_ACCELERATOR, PIN_SYNCHRONIZATION); store.setDefault(IAutomatedModelCompletionPreferencesConstants.READ_LINK_ACTION_ACCELERATOR, PIN_SYNCHRONIZATION); store.setDefault(IAutomatedModelCompletionPreferencesConstants.READ_STRUCTURAL_FEATURE_ACTION_ACCELERATOR, PIN_SYNCHRONIZATION); store.setDefault(IAutomatedModelCompletionPreferencesConstants.START_CLASSIFIER_BEHAVIOR_ACTION, PIN_SYNCHRONIZATION); diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/IAutomatedModelCompletionPreferencesConstants.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/IAutomatedModelCompletionPreferencesConstants.java index 28fc2e81482..9c88fbe1bea 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/IAutomatedModelCompletionPreferencesConstants.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/utils/updater/preferences/IAutomatedModelCompletionPreferencesConstants.java @@ -34,6 +34,8 @@ public interface IAutomatedModelCompletionPreferencesConstants { final public String READ_LINK_ACTION_ACCELERATOR = "org.eclipse.papyrus.uml.diagram.activity.preferences.readLinkAction"; + final public String READ_SELF_ACTION_ACCELERATOR = "org.eclipse.papyrus.uml.diagram.activity.preferences.readSelfAction"; + final public String READ_STRUCTURAL_FEATURE_ACTION_ACCELERATOR = "org.eclipse.papyrus.uml.diagram.activity.preferences.readStructuralFeatureAction"; final public String START_CLASSIFIER_BEHAVIOR_ACTION = "org.eclipse.papyrus.uml.diagram.activity.preferences.startClassifierBehaviorAction"; diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/model/activityDiagram.elementtypesconfigurations b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/model/activityDiagram.elementtypesconfigurations index f9360ecdda1..912ddbf18bf 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/model/activityDiagram.elementtypesconfigurations +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/model/activityDiagram.elementtypesconfigurations @@ -42,6 +42,9 @@ <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_8PlT8NcMEeaqY_uVBFnnsA" identifier="org.eclipse.papyrus.uml.diagram.activity.edit.advices.StartObjectBehaviorActionEditHelperAdvice" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.uml.diagram.activity.edit.advices.StartObjectBehaviorActionEditHelperAdvice">
<target xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#_eu6RWNx0EeWVxMf7SXAfhg"/>
</adviceBindingsConfigurations>
+ <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_8WPb4NfYEeaDuNpRnlDJcw" identifier="org.eclipse.papyrus.uml.diagram.activity.edit.advices.ReadSelfActionEditHelperAdvice" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.uml.diagram.activity.edit.advices.ReadSelfActionEditHelperAdvice">
+ <target xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#_eu6RGNx0EeWVxMf7SXAfhg"/>
+ </adviceBindingsConfigurations>
<adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_qc9DEKzLEeaKg_9XdFC-Jg" identifier="org.eclipse.papyrus.uml.diagram.activity.edit.advices.TriggerEditHelperAdvice" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.uml.diagram.activity.edit.advices.TriggerEditHelperAdvice">
<target xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_SdLCt1YCEeS0WsAAtVmToA"/>
</adviceBindingsConfigurations>
|