Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.tabbedproperties.uml/generated/org/eclipse/papyrus/tabbedproperties/uml/components/LoopNodeBasePropertiesEditionComponent.java')
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.tabbedproperties.uml/generated/org/eclipse/papyrus/tabbedproperties/uml/components/LoopNodeBasePropertiesEditionComponent.java1739
1 files changed, 1739 insertions, 0 deletions
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.tabbedproperties.uml/generated/org/eclipse/papyrus/tabbedproperties/uml/components/LoopNodeBasePropertiesEditionComponent.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.tabbedproperties.uml/generated/org/eclipse/papyrus/tabbedproperties/uml/components/LoopNodeBasePropertiesEditionComponent.java
new file mode 100644
index 00000000000..cfacb366e11
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.tabbedproperties.uml/generated/org/eclipse/papyrus/tabbedproperties/uml/components/LoopNodeBasePropertiesEditionComponent.java
@@ -0,0 +1,1739 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.tabbedproperties.uml.components;
+
+// Start of user code for imports
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.command.CompoundCommand;
+import org.eclipse.emf.common.command.IdentityCommand;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.command.DeleteCommand;
+import org.eclipse.emf.edit.command.MoveCommand;
+import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.eef.runtime.EMFPropertiesRuntime;
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+import org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionListener;
+import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
+import org.eclipse.emf.eef.runtime.api.providers.IPropertiesEditionPartProvider;
+import org.eclipse.emf.eef.runtime.impl.components.StandardPropertiesEditionComponent;
+import org.eclipse.emf.eef.runtime.impl.filters.EObjectFilter;
+import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent;
+import org.eclipse.emf.eef.runtime.impl.services.PropertiesContextService;
+import org.eclipse.emf.eef.runtime.impl.services.PropertiesEditionPartProviderService;
+import org.eclipse.jface.dialogs.IMessageProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.papyrus.tabbedproperties.uml.parts.LoopNodePropertiesEditionPart;
+import org.eclipse.papyrus.tabbedproperties.uml.parts.UMLViewsRepository;
+import org.eclipse.uml2.uml.ActivityEdge;
+import org.eclipse.uml2.uml.ActivityNode;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Constraint;
+import org.eclipse.uml2.uml.ElementImport;
+import org.eclipse.uml2.uml.ExceptionHandler;
+import org.eclipse.uml2.uml.InputPin;
+import org.eclipse.uml2.uml.LoopNode;
+import org.eclipse.uml2.uml.OutputPin;
+import org.eclipse.uml2.uml.PackageImport;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.Variable;
+import org.eclipse.uml2.uml.VisibilityKind;
+
+// End of user code
+
+/**
+ * @author <a href="mailto:jerome.benois@obeo.fr">Jerome Benois</a>
+ */
+public class LoopNodeBasePropertiesEditionComponent extends StandardPropertiesEditionComponent {
+
+ public static String BASE_PART = "Base"; //$NON-NLS-1$
+
+ private String[] parts = { BASE_PART };
+
+ /**
+ * The EObject to edit
+ */
+ private LoopNode loopNode;
+
+ /**
+ * The Base part
+ */
+ private LoopNodePropertiesEditionPart basePart;
+
+ /**
+ * Default constructor
+ */
+ public LoopNodeBasePropertiesEditionComponent(EObject loopNode, String editing_mode) {
+ if(loopNode instanceof LoopNode) {
+ this.loopNode = (LoopNode)loopNode;
+ if(IPropertiesEditionComponent.LIVE_MODE.equals(editing_mode)) {
+ semanticAdapter = initializeSemanticAdapter();
+ this.loopNode.eAdapters().add(semanticAdapter);
+ }
+ }
+ this.editing_mode = editing_mode;
+ }
+
+ /**
+ * Initialize the semantic model listener for live editing mode
+ *
+ * @return the semantic model listener
+ */
+ private AdapterImpl initializeSemanticAdapter() {
+ return new EContentAdapter() {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification)
+ */
+ public void notifyChanged(Notification msg) {
+ if(basePart == null)
+ LoopNodeBasePropertiesEditionComponent.this.dispose();
+ else {
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getElement_OwnedComment()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getElement_OwnedComment())) {
+ basePart.updateOwnedComment(loopNode);
+ }
+ if(UMLPackage.eINSTANCE.getNamedElement_Name().equals(msg.getFeature()) && basePart != null) {
+ if(msg.getNewValue() != null) {
+ basePart.setName((String)msg.getNewValue());
+ } else {
+ basePart.setName("");
+ }
+ }
+ if(UMLPackage.eINSTANCE.getNamedElement_Visibility().equals(msg.getFeature()) && basePart != null)
+ basePart.setVisibility((Enumerator)msg.getNewValue());
+
+ if(UMLPackage.eINSTANCE.getNamedElement_ClientDependency().equals(msg.getFeature()))
+ basePart.updateClientDependency(loopNode);
+ if(UMLPackage.eINSTANCE.getRedefinableElement_IsLeaf().equals(msg.getFeature()) && basePart != null)
+ basePart.setIsLeaf((Boolean)msg.getNewValue());
+
+ if(UMLPackage.eINSTANCE.getActivityNode_Outgoing().equals(msg.getFeature()))
+ basePart.updateOutgoing(loopNode);
+ if(UMLPackage.eINSTANCE.getActivityNode_Incoming().equals(msg.getFeature()))
+ basePart.updateIncoming(loopNode);
+ if(UMLPackage.eINSTANCE.getActivityNode_InPartition().equals(msg.getFeature()))
+ basePart.updateInPartition(loopNode);
+ if(UMLPackage.eINSTANCE.getActivityNode_InInterruptibleRegion().equals(msg.getFeature()))
+ basePart.updateInInterruptibleRegion(loopNode);
+ if(UMLPackage.eINSTANCE.getActivityNode_RedefinedNode().equals(msg.getFeature()))
+ basePart.updateRedefinedNode(loopNode);
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getExecutableNode_Handler()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getExecutableNode_Handler())) {
+ basePart.updateHandler(loopNode);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getAction_LocalPrecondition()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getAction_LocalPrecondition())) {
+ basePart.updateLocalPrecondition(loopNode);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getAction_LocalPostcondition()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getAction_LocalPostcondition())) {
+ basePart.updateLocalPostcondition(loopNode);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getNamespace_ElementImport()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getNamespace_ElementImport())) {
+ basePart.updateElementImport(loopNode);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getNamespace_PackageImport()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getNamespace_PackageImport())) {
+ basePart.updatePackageImport(loopNode);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getNamespace_OwnedRule()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getNamespace_OwnedRule())) {
+ basePart.updateOwnedRule(loopNode);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getStructuredActivityNode_Variable()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getStructuredActivityNode_Variable())) {
+ basePart.updateVariable(loopNode);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getStructuredActivityNode_Edge()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getStructuredActivityNode_Edge())) {
+ basePart.updateEdge(loopNode);
+ }
+ if(UMLPackage.eINSTANCE.getStructuredActivityNode_MustIsolate().equals(msg.getFeature()) && basePart != null)
+ basePart.setMustIsolate((Boolean)msg.getNewValue());
+
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getStructuredActivityNode_Node()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getStructuredActivityNode_Node())) {
+ basePart.updateNode(loopNode);
+ }
+ if(UMLPackage.eINSTANCE.getLoopNode_IsTestedFirst().equals(msg.getFeature()) && basePart != null)
+ basePart.setIsTestedFirst((Boolean)msg.getNewValue());
+
+ if(UMLPackage.eINSTANCE.getLoopNode_BodyPart().equals(msg.getFeature()))
+ basePart.updateBodyPart(loopNode);
+ if(UMLPackage.eINSTANCE.getLoopNode_SetupPart().equals(msg.getFeature()))
+ basePart.updateSetupPart(loopNode);
+ if(UMLPackage.eINSTANCE.getLoopNode_Test().equals(msg.getFeature()))
+ basePart.updateTest(loopNode);
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getLoopNode_Result()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getLoopNode_Result())) {
+ basePart.updateResult(loopNode);
+ }
+ if(UMLPackage.eINSTANCE.getLoopNode_LoopVariable().equals(msg.getFeature()))
+ basePart.updateLoopVariable(loopNode);
+ if(UMLPackage.eINSTANCE.getLoopNode_BodyOutput().equals(msg.getFeature()))
+ basePart.updateBodyOutput(loopNode);
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getLoopNode_LoopVariableInput()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getLoopNode_LoopVariableInput())) {
+ basePart.updateLoopVariableInput(loopNode);
+ }
+
+
+ }
+ }
+
+ };
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.impl.components.StandardPropertiesEditionComponent#translatePart(java.lang.String)
+ */
+ public java.lang.Class translatePart(String key) {
+ if(BASE_PART.equals(key))
+ return UMLViewsRepository.LoopNode.class;
+ return super.translatePart(key);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#partsList()
+ */
+ public String[] partsList() {
+ return parts;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#getPropertiesEditionPart (java.lang.String, java.lang.String)
+ */
+ public IPropertiesEditionPart getPropertiesEditionPart(int kind, String key) {
+ if(loopNode != null && BASE_PART.equals(key)) {
+ if(basePart == null) {
+ IPropertiesEditionPartProvider provider = PropertiesEditionPartProviderService.getInstance().getProvider(UMLViewsRepository.class);
+ if(provider != null) {
+ basePart = (LoopNodePropertiesEditionPart)provider.getPropertiesEditionPart(UMLViewsRepository.LoopNode.class, kind, this);
+ addListener((IPropertiesEditionListener)basePart);
+ }
+ }
+ return (IPropertiesEditionPart)basePart;
+ }
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.impl.components.StandardPropertiesEditionComponent# setPropertiesEditionPart(java.lang.Class, int,
+ * org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart)
+ */
+ public void setPropertiesEditionPart(java.lang.Class key, int kind, IPropertiesEditionPart propertiesEditionPart) {
+ if(key == UMLViewsRepository.LoopNode.class)
+ this.basePart = (LoopNodePropertiesEditionPart)propertiesEditionPart;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#initPart(java.lang.Class, int, org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.resource.ResourceSet)
+ */
+ public void initPart(java.lang.Class key, int kind, EObject elt, ResourceSet allResource) {
+ if(basePart != null && key == UMLViewsRepository.LoopNode.class) {
+ ((IPropertiesEditionPart)basePart).setContext(elt, allResource);
+ final LoopNode loopNode = (LoopNode)elt;
+ // init values
+ basePart.initOwnedComment(loopNode, null, UMLPackage.eINSTANCE.getElement_OwnedComment());
+ if(loopNode.getName() != null)
+ basePart.setName(loopNode.getName());
+
+ basePart.initVisibility((EEnum)UMLPackage.eINSTANCE.getNamedElement_Visibility().getEType(), loopNode.getVisibility());
+ basePart.initClientDependency(loopNode, null, UMLPackage.eINSTANCE.getNamedElement_ClientDependency());
+ basePart.setIsLeaf(loopNode.isLeaf());
+
+ basePart.initOutgoing(loopNode, null, UMLPackage.eINSTANCE.getActivityNode_Outgoing());
+ basePart.initIncoming(loopNode, null, UMLPackage.eINSTANCE.getActivityNode_Incoming());
+ basePart.initInPartition(loopNode, null, UMLPackage.eINSTANCE.getActivityNode_InPartition());
+ basePart.initInInterruptibleRegion(loopNode, null, UMLPackage.eINSTANCE.getActivityNode_InInterruptibleRegion());
+ basePart.initRedefinedNode(loopNode, null, UMLPackage.eINSTANCE.getActivityNode_RedefinedNode());
+ basePart.initHandler(loopNode, null, UMLPackage.eINSTANCE.getExecutableNode_Handler());
+ basePart.initLocalPrecondition(loopNode, null, UMLPackage.eINSTANCE.getAction_LocalPrecondition());
+ basePart.initLocalPostcondition(loopNode, null, UMLPackage.eINSTANCE.getAction_LocalPostcondition());
+ basePart.initElementImport(loopNode, null, UMLPackage.eINSTANCE.getNamespace_ElementImport());
+ basePart.initPackageImport(loopNode, null, UMLPackage.eINSTANCE.getNamespace_PackageImport());
+ basePart.initOwnedRule(loopNode, null, UMLPackage.eINSTANCE.getNamespace_OwnedRule());
+ basePart.initVariable(loopNode, null, UMLPackage.eINSTANCE.getStructuredActivityNode_Variable());
+ basePart.initEdge(loopNode, null, UMLPackage.eINSTANCE.getStructuredActivityNode_Edge());
+ basePart.setMustIsolate(loopNode.isMustIsolate());
+
+ basePart.initNode(loopNode, null, UMLPackage.eINSTANCE.getStructuredActivityNode_Node());
+ basePart.setIsTestedFirst(loopNode.isTestedFirst());
+
+ basePart.initBodyPart(loopNode, null, UMLPackage.eINSTANCE.getLoopNode_BodyPart());
+ basePart.initSetupPart(loopNode, null, UMLPackage.eINSTANCE.getLoopNode_SetupPart());
+ basePart.initTest(loopNode, null, UMLPackage.eINSTANCE.getLoopNode_Test());
+ basePart.initResult(loopNode, null, UMLPackage.eINSTANCE.getLoopNode_Result());
+ basePart.initLoopVariable(loopNode, null, UMLPackage.eINSTANCE.getLoopNode_LoopVariable());
+ basePart.initBodyOutput(loopNode, null, UMLPackage.eINSTANCE.getLoopNode_BodyOutput());
+ basePart.initLoopVariableInput(loopNode, null, UMLPackage.eINSTANCE.getLoopNode_LoopVariableInput());
+
+ // init filters
+ basePart.addFilterToOwnedComment(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof Comment); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for ownedComment
+
+ // End of user code
+
+
+ basePart.addFilterToClientDependency(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInClientDependencyTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToClientDependency(new EObjectFilter(UMLPackage.eINSTANCE.getDependency()));
+ // Start of user code for additional businessfilters for clientDependency
+
+ // End of user code
+
+ basePart.addFilterToOutgoing(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInOutgoingTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToOutgoing(new EObjectFilter(UMLPackage.eINSTANCE.getActivityEdge()));
+ // Start of user code for additional businessfilters for outgoing
+
+ // End of user code
+ basePart.addFilterToIncoming(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInIncomingTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToIncoming(new EObjectFilter(UMLPackage.eINSTANCE.getActivityEdge()));
+ // Start of user code for additional businessfilters for incoming
+
+ // End of user code
+ basePart.addFilterToInPartition(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInInPartitionTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToInPartition(new EObjectFilter(UMLPackage.eINSTANCE.getActivityPartition()));
+ // Start of user code for additional businessfilters for inPartition
+
+ // End of user code
+ basePart.addFilterToInInterruptibleRegion(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInInInterruptibleRegionTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToInInterruptibleRegion(new EObjectFilter(UMLPackage.eINSTANCE.getInterruptibleActivityRegion()));
+ // Start of user code for additional businessfilters for inInterruptibleRegion
+
+ // End of user code
+ basePart.addFilterToRedefinedNode(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInRedefinedNodeTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToRedefinedNode(new EObjectFilter(UMLPackage.eINSTANCE.getActivityNode()));
+ // Start of user code for additional businessfilters for redefinedNode
+
+ // End of user code
+ basePart.addFilterToHandler(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof ExceptionHandler); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for handler
+
+ // End of user code
+ basePart.addFilterToLocalPrecondition(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof Constraint); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for localPrecondition
+
+ // End of user code
+ basePart.addFilterToLocalPostcondition(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof Constraint); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for localPostcondition
+
+ // End of user code
+ basePart.addFilterToElementImport(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof ElementImport); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for elementImport
+
+ // End of user code
+ basePart.addFilterToPackageImport(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof PackageImport); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for packageImport
+
+ // End of user code
+ basePart.addFilterToOwnedRule(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof Constraint); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for ownedRule
+
+ // End of user code
+ basePart.addFilterToVariable(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof Variable); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for variable
+
+ // End of user code
+ basePart.addFilterToEdge(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof ActivityEdge); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for edge
+
+ // End of user code
+
+ basePart.addFilterToNode(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof ActivityNode); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for node
+
+ // End of user code
+
+ basePart.addFilterToBodyPart(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInBodyPartTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToBodyPart(new EObjectFilter(UMLPackage.eINSTANCE.getExecutableNode()));
+ // Start of user code for additional businessfilters for bodyPart
+
+ // End of user code
+ basePart.addFilterToSetupPart(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInSetupPartTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToSetupPart(new EObjectFilter(UMLPackage.eINSTANCE.getExecutableNode()));
+ // Start of user code for additional businessfilters for setupPart
+
+ // End of user code
+ basePart.addFilterToTest(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInTestTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToTest(new EObjectFilter(UMLPackage.eINSTANCE.getExecutableNode()));
+ // Start of user code for additional businessfilters for test
+
+ // End of user code
+ basePart.addFilterToResult(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof OutputPin); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for result
+
+ // End of user code
+ basePart.addFilterToLoopVariable(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInLoopVariableTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToLoopVariable(new EObjectFilter(UMLPackage.eINSTANCE.getOutputPin()));
+ // Start of user code for additional businessfilters for loopVariable
+
+ // End of user code
+ basePart.addFilterToBodyOutput(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if(element instanceof EObject)
+ return (!basePart.isContainedInBodyOutputTable((EObject)element));
+ return element instanceof Resource;
+ }
+
+ });
+ basePart.addFilterToBodyOutput(new EObjectFilter(UMLPackage.eINSTANCE.getOutputPin()));
+ // Start of user code for additional businessfilters for bodyOutput
+
+ // End of user code
+ basePart.addFilterToLoopVariableInput(new ViewerFilter() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ return (element instanceof String && element.equals("")) || (element instanceof InputPin); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for loopVariableInput
+
+ // End of user code
+ }
+ // init values for referenced views
+
+ // init filters for referenced views
+
+ }
+
+
+
+
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#getPropertiesEditionCommand
+ * (org.eclipse.emf.edit.domain.EditingDomain)
+ */
+ public CompoundCommand getPropertiesEditionCommand(EditingDomain editingDomain) {
+ CompoundCommand cc = new CompoundCommand();
+ if(loopNode != null) {
+ List ownedCommentToAddFromOwnedComment = basePart.getOwnedCommentToAdd();
+ for(Iterator iter = ownedCommentToAddFromOwnedComment.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getElement_OwnedComment(), iter.next()));
+ Map ownedCommentToRefreshFromOwnedComment = basePart.getOwnedCommentToEdit();
+ for(Iterator iter = ownedCommentToRefreshFromOwnedComment.keySet().iterator(); iter.hasNext();) {
+
+
+
+ Comment nextElement = (Comment)iter.next();
+ Comment ownedComment = (Comment)ownedCommentToRefreshFromOwnedComment.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, ownedComment.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List ownedCommentToRemoveFromOwnedComment = basePart.getOwnedCommentToRemove();
+ for(Iterator iter = ownedCommentToRemoveFromOwnedComment.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List ownedCommentToMoveFromOwnedComment = basePart.getOwnedCommentToMove();
+ for(Iterator iter = ownedCommentToMoveFromOwnedComment.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getComment(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ cc.append(SetCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getNamedElement_Name(), basePart.getName()));
+
+ cc.append(SetCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getNamedElement_Visibility(), basePart.getVisibility()));
+
+ List clientDependencyToAddFromClientDependency = basePart.getClientDependencyToAdd();
+ for(Iterator iter = clientDependencyToAddFromClientDependency.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getNamedElement_ClientDependency(), iter.next()));
+ List clientDependencyToRemoveFromClientDependency = basePart.getClientDependencyToRemove();
+ for(Iterator iter = clientDependencyToRemoveFromClientDependency.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getNamedElement_ClientDependency(), iter.next()));
+ //List clientDependencyToMoveFromClientDependency = basePart.getClientDependencyToMove();
+ //for (Iterator iter = clientDependencyToMoveFromClientDependency.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getDependency(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ cc.append(SetCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getRedefinableElement_IsLeaf(), basePart.getIsLeaf()));
+
+ List outgoingToAddFromOutgoing = basePart.getOutgoingToAdd();
+ for(Iterator iter = outgoingToAddFromOutgoing.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_Outgoing(), iter.next()));
+ List outgoingToRemoveFromOutgoing = basePart.getOutgoingToRemove();
+ for(Iterator iter = outgoingToRemoveFromOutgoing.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_Outgoing(), iter.next()));
+ //List outgoingToMoveFromOutgoing = basePart.getOutgoingToMove();
+ //for (Iterator iter = outgoingToMoveFromOutgoing.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityEdge(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ List incomingToAddFromIncoming = basePart.getIncomingToAdd();
+ for(Iterator iter = incomingToAddFromIncoming.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_Incoming(), iter.next()));
+ List incomingToRemoveFromIncoming = basePart.getIncomingToRemove();
+ for(Iterator iter = incomingToRemoveFromIncoming.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_Incoming(), iter.next()));
+ //List incomingToMoveFromIncoming = basePart.getIncomingToMove();
+ //for (Iterator iter = incomingToMoveFromIncoming.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityEdge(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ List inPartitionToAddFromInPartition = basePart.getInPartitionToAdd();
+ for(Iterator iter = inPartitionToAddFromInPartition.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_InPartition(), iter.next()));
+ List inPartitionToRemoveFromInPartition = basePart.getInPartitionToRemove();
+ for(Iterator iter = inPartitionToRemoveFromInPartition.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_InPartition(), iter.next()));
+ //List inPartitionToMoveFromInPartition = basePart.getInPartitionToMove();
+ //for (Iterator iter = inPartitionToMoveFromInPartition.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityPartition(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ List inInterruptibleRegionToAddFromInInterruptibleRegion = basePart.getInInterruptibleRegionToAdd();
+ for(Iterator iter = inInterruptibleRegionToAddFromInInterruptibleRegion.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_InInterruptibleRegion(), iter.next()));
+ List inInterruptibleRegionToRemoveFromInInterruptibleRegion = basePart.getInInterruptibleRegionToRemove();
+ for(Iterator iter = inInterruptibleRegionToRemoveFromInInterruptibleRegion.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_InInterruptibleRegion(), iter.next()));
+ //List inInterruptibleRegionToMoveFromInInterruptibleRegion = basePart.getInInterruptibleRegionToMove();
+ //for (Iterator iter = inInterruptibleRegionToMoveFromInInterruptibleRegion.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getInterruptibleActivityRegion(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ List redefinedNodeToAddFromRedefinedNode = basePart.getRedefinedNodeToAdd();
+ for(Iterator iter = redefinedNodeToAddFromRedefinedNode.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_RedefinedNode(), iter.next()));
+ List redefinedNodeToRemoveFromRedefinedNode = basePart.getRedefinedNodeToRemove();
+ for(Iterator iter = redefinedNodeToRemoveFromRedefinedNode.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_RedefinedNode(), iter.next()));
+ //List redefinedNodeToMoveFromRedefinedNode = basePart.getRedefinedNodeToMove();
+ //for (Iterator iter = redefinedNodeToMoveFromRedefinedNode.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ List handlerToAddFromHandler = basePart.getHandlerToAdd();
+ for(Iterator iter = handlerToAddFromHandler.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getExecutableNode_Handler(), iter.next()));
+ Map handlerToRefreshFromHandler = basePart.getHandlerToEdit();
+ for(Iterator iter = handlerToRefreshFromHandler.keySet().iterator(); iter.hasNext();) {
+
+
+
+ ExceptionHandler nextElement = (ExceptionHandler)iter.next();
+ ExceptionHandler handler = (ExceptionHandler)handlerToRefreshFromHandler.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, handler.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List handlerToRemoveFromHandler = basePart.getHandlerToRemove();
+ for(Iterator iter = handlerToRemoveFromHandler.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List handlerToMoveFromHandler = basePart.getHandlerToMove();
+ for(Iterator iter = handlerToMoveFromHandler.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getExceptionHandler(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List localPreconditionToAddFromLocalPrecondition = basePart.getLocalPreconditionToAdd();
+ for(Iterator iter = localPreconditionToAddFromLocalPrecondition.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getAction_LocalPrecondition(), iter.next()));
+ Map localPreconditionToRefreshFromLocalPrecondition = basePart.getLocalPreconditionToEdit();
+ for(Iterator iter = localPreconditionToRefreshFromLocalPrecondition.keySet().iterator(); iter.hasNext();) {
+
+
+
+ Constraint nextElement = (Constraint)iter.next();
+ Constraint localPrecondition = (Constraint)localPreconditionToRefreshFromLocalPrecondition.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, localPrecondition.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List localPreconditionToRemoveFromLocalPrecondition = basePart.getLocalPreconditionToRemove();
+ for(Iterator iter = localPreconditionToRemoveFromLocalPrecondition.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List localPreconditionToMoveFromLocalPrecondition = basePart.getLocalPreconditionToMove();
+ for(Iterator iter = localPreconditionToMoveFromLocalPrecondition.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getConstraint(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List localPostconditionToAddFromLocalPostcondition = basePart.getLocalPostconditionToAdd();
+ for(Iterator iter = localPostconditionToAddFromLocalPostcondition.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getAction_LocalPostcondition(), iter.next()));
+ Map localPostconditionToRefreshFromLocalPostcondition = basePart.getLocalPostconditionToEdit();
+ for(Iterator iter = localPostconditionToRefreshFromLocalPostcondition.keySet().iterator(); iter.hasNext();) {
+
+
+
+ Constraint nextElement = (Constraint)iter.next();
+ Constraint localPostcondition = (Constraint)localPostconditionToRefreshFromLocalPostcondition.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, localPostcondition.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List localPostconditionToRemoveFromLocalPostcondition = basePart.getLocalPostconditionToRemove();
+ for(Iterator iter = localPostconditionToRemoveFromLocalPostcondition.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List localPostconditionToMoveFromLocalPostcondition = basePart.getLocalPostconditionToMove();
+ for(Iterator iter = localPostconditionToMoveFromLocalPostcondition.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getConstraint(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List elementImportToAddFromElementImport = basePart.getElementImportToAdd();
+ for(Iterator iter = elementImportToAddFromElementImport.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getNamespace_ElementImport(), iter.next()));
+ Map elementImportToRefreshFromElementImport = basePart.getElementImportToEdit();
+ for(Iterator iter = elementImportToRefreshFromElementImport.keySet().iterator(); iter.hasNext();) {
+
+
+
+ ElementImport nextElement = (ElementImport)iter.next();
+ ElementImport elementImport = (ElementImport)elementImportToRefreshFromElementImport.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, elementImport.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List elementImportToRemoveFromElementImport = basePart.getElementImportToRemove();
+ for(Iterator iter = elementImportToRemoveFromElementImport.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List elementImportToMoveFromElementImport = basePart.getElementImportToMove();
+ for(Iterator iter = elementImportToMoveFromElementImport.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getElementImport(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List packageImportToAddFromPackageImport = basePart.getPackageImportToAdd();
+ for(Iterator iter = packageImportToAddFromPackageImport.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getNamespace_PackageImport(), iter.next()));
+ Map packageImportToRefreshFromPackageImport = basePart.getPackageImportToEdit();
+ for(Iterator iter = packageImportToRefreshFromPackageImport.keySet().iterator(); iter.hasNext();) {
+
+
+
+ PackageImport nextElement = (PackageImport)iter.next();
+ PackageImport packageImport = (PackageImport)packageImportToRefreshFromPackageImport.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, packageImport.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List packageImportToRemoveFromPackageImport = basePart.getPackageImportToRemove();
+ for(Iterator iter = packageImportToRemoveFromPackageImport.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List packageImportToMoveFromPackageImport = basePart.getPackageImportToMove();
+ for(Iterator iter = packageImportToMoveFromPackageImport.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getPackageImport(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List ownedRuleToAddFromOwnedRule = basePart.getOwnedRuleToAdd();
+ for(Iterator iter = ownedRuleToAddFromOwnedRule.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getNamespace_OwnedRule(), iter.next()));
+ Map ownedRuleToRefreshFromOwnedRule = basePart.getOwnedRuleToEdit();
+ for(Iterator iter = ownedRuleToRefreshFromOwnedRule.keySet().iterator(); iter.hasNext();) {
+
+
+
+ Constraint nextElement = (Constraint)iter.next();
+ Constraint ownedRule = (Constraint)ownedRuleToRefreshFromOwnedRule.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, ownedRule.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List ownedRuleToRemoveFromOwnedRule = basePart.getOwnedRuleToRemove();
+ for(Iterator iter = ownedRuleToRemoveFromOwnedRule.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List ownedRuleToMoveFromOwnedRule = basePart.getOwnedRuleToMove();
+ for(Iterator iter = ownedRuleToMoveFromOwnedRule.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getConstraint(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List variableToAddFromVariable = basePart.getVariableToAdd();
+ for(Iterator iter = variableToAddFromVariable.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getStructuredActivityNode_Variable(), iter.next()));
+ Map variableToRefreshFromVariable = basePart.getVariableToEdit();
+ for(Iterator iter = variableToRefreshFromVariable.keySet().iterator(); iter.hasNext();) {
+
+
+
+ Variable nextElement = (Variable)iter.next();
+ Variable variable = (Variable)variableToRefreshFromVariable.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, variable.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List variableToRemoveFromVariable = basePart.getVariableToRemove();
+ for(Iterator iter = variableToRemoveFromVariable.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List variableToMoveFromVariable = basePart.getVariableToMove();
+ for(Iterator iter = variableToMoveFromVariable.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getVariable(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List edgeToAddFromEdge = basePart.getEdgeToAdd();
+ for(Iterator iter = edgeToAddFromEdge.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getStructuredActivityNode_Edge(), iter.next()));
+ Map edgeToRefreshFromEdge = basePart.getEdgeToEdit();
+ for(Iterator iter = edgeToRefreshFromEdge.keySet().iterator(); iter.hasNext();) {
+
+
+
+ ActivityEdge nextElement = (ActivityEdge)iter.next();
+ ActivityEdge edge = (ActivityEdge)edgeToRefreshFromEdge.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, edge.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List edgeToRemoveFromEdge = basePart.getEdgeToRemove();
+ for(Iterator iter = edgeToRemoveFromEdge.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List edgeToMoveFromEdge = basePart.getEdgeToMove();
+ for(Iterator iter = edgeToMoveFromEdge.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityEdge(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ cc.append(SetCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getStructuredActivityNode_MustIsolate(), basePart.getMustIsolate()));
+
+ List nodeToAddFromNode = basePart.getNodeToAdd();
+ for(Iterator iter = nodeToAddFromNode.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getStructuredActivityNode_Node(), iter.next()));
+ Map nodeToRefreshFromNode = basePart.getNodeToEdit();
+ for(Iterator iter = nodeToRefreshFromNode.keySet().iterator(); iter.hasNext();) {
+
+
+
+ ActivityNode nextElement = (ActivityNode)iter.next();
+ ActivityNode node = (ActivityNode)nodeToRefreshFromNode.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, node.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List nodeToRemoveFromNode = basePart.getNodeToRemove();
+ for(Iterator iter = nodeToRemoveFromNode.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List nodeToMoveFromNode = basePart.getNodeToMove();
+ for(Iterator iter = nodeToMoveFromNode.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ cc.append(SetCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_IsTestedFirst(), basePart.getIsTestedFirst()));
+
+ List bodyPartToAddFromBodyPart = basePart.getBodyPartToAdd();
+ for(Iterator iter = bodyPartToAddFromBodyPart.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_BodyPart(), iter.next()));
+ List bodyPartToRemoveFromBodyPart = basePart.getBodyPartToRemove();
+ for(Iterator iter = bodyPartToRemoveFromBodyPart.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_BodyPart(), iter.next()));
+ //List bodyPartToMoveFromBodyPart = basePart.getBodyPartToMove();
+ //for (Iterator iter = bodyPartToMoveFromBodyPart.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getExecutableNode(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ List setupPartToAddFromSetupPart = basePart.getSetupPartToAdd();
+ for(Iterator iter = setupPartToAddFromSetupPart.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_SetupPart(), iter.next()));
+ List setupPartToRemoveFromSetupPart = basePart.getSetupPartToRemove();
+ for(Iterator iter = setupPartToRemoveFromSetupPart.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_SetupPart(), iter.next()));
+ //List setupPartToMoveFromSetupPart = basePart.getSetupPartToMove();
+ //for (Iterator iter = setupPartToMoveFromSetupPart.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getExecutableNode(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ List testToAddFromTest = basePart.getTestToAdd();
+ for(Iterator iter = testToAddFromTest.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_Test(), iter.next()));
+ List testToRemoveFromTest = basePart.getTestToRemove();
+ for(Iterator iter = testToRemoveFromTest.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_Test(), iter.next()));
+ //List testToMoveFromTest = basePart.getTestToMove();
+ //for (Iterator iter = testToMoveFromTest.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getExecutableNode(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ List resultToAddFromResult = basePart.getResultToAdd();
+ for(Iterator iter = resultToAddFromResult.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_Result(), iter.next()));
+ Map resultToRefreshFromResult = basePart.getResultToEdit();
+ for(Iterator iter = resultToRefreshFromResult.keySet().iterator(); iter.hasNext();) {
+
+
+
+ OutputPin nextElement = (OutputPin)iter.next();
+ OutputPin result = (OutputPin)resultToRefreshFromResult.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, result.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List resultToRemoveFromResult = basePart.getResultToRemove();
+ for(Iterator iter = resultToRemoveFromResult.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List resultToMoveFromResult = basePart.getResultToMove();
+ for(Iterator iter = resultToMoveFromResult.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getOutputPin(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List loopVariableToAddFromLoopVariable = basePart.getLoopVariableToAdd();
+ for(Iterator iter = loopVariableToAddFromLoopVariable.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_LoopVariable(), iter.next()));
+ List loopVariableToRemoveFromLoopVariable = basePart.getLoopVariableToRemove();
+ for(Iterator iter = loopVariableToRemoveFromLoopVariable.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_LoopVariable(), iter.next()));
+ //List loopVariableToMoveFromLoopVariable = basePart.getLoopVariableToMove();
+ //for (Iterator iter = loopVariableToMoveFromLoopVariable.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getOutputPin(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ List bodyOutputToAddFromBodyOutput = basePart.getBodyOutputToAdd();
+ for(Iterator iter = bodyOutputToAddFromBodyOutput.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_BodyOutput(), iter.next()));
+ List bodyOutputToRemoveFromBodyOutput = basePart.getBodyOutputToRemove();
+ for(Iterator iter = bodyOutputToRemoveFromBodyOutput.iterator(); iter.hasNext();)
+ cc.append(RemoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_BodyOutput(), iter.next()));
+ //List bodyOutputToMoveFromBodyOutput = basePart.getBodyOutputToMove();
+ //for (Iterator iter = bodyOutputToMoveFromBodyOutput.iterator(); iter.hasNext();){
+ // org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ // cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getOutputPin(), moveElement.getElement(), moveElement.getIndex()));
+ //}
+ List loopVariableInputToAddFromLoopVariableInput = basePart.getLoopVariableInputToAdd();
+ for(Iterator iter = loopVariableInputToAddFromLoopVariableInput.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_LoopVariableInput(), iter.next()));
+ Map loopVariableInputToRefreshFromLoopVariableInput = basePart.getLoopVariableInputToEdit();
+ for(Iterator iter = loopVariableInputToRefreshFromLoopVariableInput.keySet().iterator(); iter.hasNext();) {
+
+
+
+ InputPin nextElement = (InputPin)iter.next();
+ InputPin loopVariableInput = (InputPin)loopVariableInputToRefreshFromLoopVariableInput.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, loopVariableInput.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List loopVariableInputToRemoveFromLoopVariableInput = basePart.getLoopVariableInputToRemove();
+ for(Iterator iter = loopVariableInputToRemoveFromLoopVariableInput.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List loopVariableInputToMoveFromLoopVariableInput = basePart.getLoopVariableInputToMove();
+ for(Iterator iter = loopVariableInputToMoveFromLoopVariableInput.iterator(); iter.hasNext();) {
+ org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement)iter.next();
+ cc.append(MoveCommand.create(editingDomain, loopNode, UMLPackage.eINSTANCE.getInputPin(), moveElement.getElement(), moveElement.getIndex()));
+ }
+
+
+ }
+ if(!cc.isEmpty())
+ return cc;
+ cc.append(IdentityCommand.INSTANCE);
+ return cc;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#getPropertiesEditionObject()
+ */
+ public EObject getPropertiesEditionObject(EObject source) {
+ if(source instanceof LoopNode) {
+ LoopNode loopNodeToUpdate = (LoopNode)source;
+ loopNodeToUpdate.getOwnedComments().addAll(basePart.getOwnedCommentToAdd());
+ loopNodeToUpdate.setName(basePart.getName());
+
+ loopNodeToUpdate.setVisibility((VisibilityKind)basePart.getVisibility());
+
+ loopNodeToUpdate.getClientDependencies().addAll(basePart.getClientDependencyToAdd());
+ loopNodeToUpdate.setIsLeaf(new Boolean(basePart.getIsLeaf()).booleanValue());
+
+ loopNodeToUpdate.getOutgoings().addAll(basePart.getOutgoingToAdd());
+ loopNodeToUpdate.getIncomings().addAll(basePart.getIncomingToAdd());
+ loopNodeToUpdate.getInPartitions().addAll(basePart.getInPartitionToAdd());
+ loopNodeToUpdate.getInInterruptibleRegions().addAll(basePart.getInInterruptibleRegionToAdd());
+ loopNodeToUpdate.getRedefinedNodes().addAll(basePart.getRedefinedNodeToAdd());
+ loopNodeToUpdate.getHandlers().addAll(basePart.getHandlerToAdd());
+ loopNodeToUpdate.getLocalPreconditions().addAll(basePart.getLocalPreconditionToAdd());
+ loopNodeToUpdate.getLocalPostconditions().addAll(basePart.getLocalPostconditionToAdd());
+ loopNodeToUpdate.getElementImports().addAll(basePart.getElementImportToAdd());
+ loopNodeToUpdate.getPackageImports().addAll(basePart.getPackageImportToAdd());
+ loopNodeToUpdate.getOwnedRules().addAll(basePart.getOwnedRuleToAdd());
+ loopNodeToUpdate.getVariables().addAll(basePart.getVariableToAdd());
+ loopNodeToUpdate.getEdges().addAll(basePart.getEdgeToAdd());
+ loopNodeToUpdate.setMustIsolate(new Boolean(basePart.getMustIsolate()).booleanValue());
+
+ loopNodeToUpdate.getNodes().addAll(basePart.getNodeToAdd());
+ loopNodeToUpdate.setIsTestedFirst(new Boolean(basePart.getIsTestedFirst()).booleanValue());
+
+ loopNodeToUpdate.getBodyParts().addAll(basePart.getBodyPartToAdd());
+ loopNodeToUpdate.getSetupParts().addAll(basePart.getSetupPartToAdd());
+ loopNodeToUpdate.getTests().addAll(basePart.getTestToAdd());
+ loopNodeToUpdate.getResults().addAll(basePart.getResultToAdd());
+ loopNodeToUpdate.getLoopVariables().addAll(basePart.getLoopVariableToAdd());
+ loopNodeToUpdate.getBodyOutputs().addAll(basePart.getBodyOutputToAdd());
+ loopNodeToUpdate.getLoopVariableInputs().addAll(basePart.getLoopVariableInputToAdd());
+
+
+ return loopNodeToUpdate;
+ } else
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionListener#firePropertiesChanged(org.eclipse.emf.common.notify.Notification)
+ */
+ public void firePropertiesChanged(PropertiesEditionEvent event) {
+ super.firePropertiesChanged(event);
+ if(PropertiesEditionEvent.COMMIT == event.getState() && IPropertiesEditionComponent.LIVE_MODE.equals(editing_mode)) {
+ CompoundCommand command = new CompoundCommand();
+ if(UMLViewsRepository.LoopNode.ownedComment == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ Comment oldValue = (Comment)event.getOldValue();
+ Comment newValue = (Comment)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getElement_OwnedComment(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getComment(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.name == event.getAffectedEditor())
+ command.append(SetCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getNamedElement_Name(), event.getNewValue()));
+
+ if(UMLViewsRepository.LoopNode.visibility == event.getAffectedEditor())
+ command.append(SetCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getNamedElement_Visibility(), event.getNewValue()));
+
+ if(UMLViewsRepository.LoopNode.clientDependency == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getNamedElement_ClientDependency(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getNamedElement_ClientDependency(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getNamedElement_ClientDependency(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.isLeaf == event.getAffectedEditor())
+ command.append(SetCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getRedefinableElement_IsLeaf(), event.getNewValue()));
+
+ if(UMLViewsRepository.LoopNode.outgoing == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_Outgoing(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_Outgoing(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_Outgoing(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.incoming == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_Incoming(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_Incoming(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_Incoming(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.inPartition == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_InPartition(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_InPartition(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_InPartition(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.inInterruptibleRegion == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_InInterruptibleRegion(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_InInterruptibleRegion(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_InInterruptibleRegion(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.redefinedNode == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_RedefinedNode(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_RedefinedNode(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode_RedefinedNode(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.handler == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ ExceptionHandler oldValue = (ExceptionHandler)event.getOldValue();
+ ExceptionHandler newValue = (ExceptionHandler)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getExecutableNode_Handler(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getExceptionHandler(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.localPrecondition == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ Constraint oldValue = (Constraint)event.getOldValue();
+ Constraint newValue = (Constraint)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getAction_LocalPrecondition(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getConstraint(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.localPostcondition == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ Constraint oldValue = (Constraint)event.getOldValue();
+ Constraint newValue = (Constraint)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getAction_LocalPostcondition(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getConstraint(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.elementImport == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ ElementImport oldValue = (ElementImport)event.getOldValue();
+ ElementImport newValue = (ElementImport)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getNamespace_ElementImport(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getElementImport(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.packageImport == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ PackageImport oldValue = (PackageImport)event.getOldValue();
+ PackageImport newValue = (PackageImport)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getNamespace_PackageImport(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getPackageImport(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.ownedRule == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ Constraint oldValue = (Constraint)event.getOldValue();
+ Constraint newValue = (Constraint)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getNamespace_OwnedRule(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getConstraint(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.variable == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ Variable oldValue = (Variable)event.getOldValue();
+ Variable newValue = (Variable)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getStructuredActivityNode_Variable(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getVariable(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.edge == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ ActivityEdge oldValue = (ActivityEdge)event.getOldValue();
+ ActivityEdge newValue = (ActivityEdge)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getStructuredActivityNode_Edge(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityEdge(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.mustIsolate == event.getAffectedEditor())
+ command.append(SetCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getStructuredActivityNode_MustIsolate(), event.getNewValue()));
+
+ if(UMLViewsRepository.LoopNode.node == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ ActivityNode oldValue = (ActivityNode)event.getOldValue();
+ ActivityNode newValue = (ActivityNode)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getStructuredActivityNode_Node(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getActivityNode(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.isTestedFirst == event.getAffectedEditor())
+ command.append(SetCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_IsTestedFirst(), event.getNewValue()));
+
+ if(UMLViewsRepository.LoopNode.bodyPart == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_BodyPart(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_BodyPart(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_BodyPart(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.setupPart == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_SetupPart(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_SetupPart(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_SetupPart(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.test == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_Test(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_Test(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_Test(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.result == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ OutputPin oldValue = (OutputPin)event.getOldValue();
+ OutputPin newValue = (OutputPin)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_Result(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getOutputPin(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.loopVariable == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_LoopVariable(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_LoopVariable(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_LoopVariable(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.bodyOutput == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_BodyOutput(), event.getNewValue()));
+ if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(RemoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_BodyOutput(), event.getNewValue()));
+ if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_BodyOutput(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.LoopNode.loopVariableInput == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ InputPin oldValue = (InputPin)event.getOldValue();
+ InputPin newValue = (InputPin)event.getNewValue();
+
+
+ // TODO: Complete the loopNode update command
+ for(EStructuralFeature feature : newValue.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ command.append(SetCommand.create(liveEditingDomain, oldValue, feature, newValue.eGet(feature)));
+ }
+ }
+
+
+ } else if(PropertiesEditionEvent.ADD == event.getKind())
+ command.append(AddCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getLoopNode_LoopVariableInput(), event.getNewValue()));
+ else if(PropertiesEditionEvent.REMOVE == event.getKind())
+ command.append(DeleteCommand.create(liveEditingDomain, event.getNewValue()));
+ else if(PropertiesEditionEvent.MOVE == event.getKind())
+ command.append(MoveCommand.create(liveEditingDomain, loopNode, UMLPackage.eINSTANCE.getInputPin(), event.getNewValue(), event.getNewIndex()));
+ }
+
+
+ if(!command.isEmpty() && !command.canExecute()) {
+ EMFPropertiesRuntime.getDefault().logError("Cannot perform model change command.", null);
+ } else {
+ liveEditingDomain.getCommandStack().execute(command);
+ }
+ } else if(PropertiesEditionEvent.CHANGE == event.getState()) {
+ Diagnostic diag = this.validateValue(event);
+ if(diag != null && diag.getSeverity() != Diagnostic.OK) {
+
+ if(UMLViewsRepository.LoopNode.name == event.getAffectedEditor())
+ basePart.setMessageForName(diag.getMessage(), IMessageProvider.ERROR);
+
+
+
+
+
+ } else {
+
+ if(UMLViewsRepository.LoopNode.name == event.getAffectedEditor())
+ basePart.unsetMessageForName();
+
+
+
+
+
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.impl.components.StandardPropertiesEditionComponent#isRequired(java.lang.String, int)
+ */
+ public boolean isRequired(String key, int kind) {
+ return key == UMLViewsRepository.LoopNode.isLeaf || key == UMLViewsRepository.LoopNode.mustIsolate || key == UMLViewsRepository.LoopNode.isTestedFirst;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#validateValue(org.eclipse.emf.common.notify.Notification)
+ */
+ public Diagnostic validateValue(PropertiesEditionEvent event) {
+ Diagnostic ret = null;
+ if(event.getNewValue() != null) {
+ String newStringValue = event.getNewValue().toString();
+ try {
+ if(UMLViewsRepository.LoopNode.name == event.getAffectedEditor()) {
+ Object newValue = EcoreUtil.createFromString(UMLPackage.eINSTANCE.getNamedElement_Name().getEAttributeType(), newStringValue);
+ ret = Diagnostician.INSTANCE.validate(UMLPackage.eINSTANCE.getNamedElement_Name().getEAttributeType(), newValue);
+ }
+ if(UMLViewsRepository.LoopNode.visibility == event.getAffectedEditor()) {
+ Object newValue = EcoreUtil.createFromString(UMLPackage.eINSTANCE.getNamedElement_Visibility().getEAttributeType(), newStringValue);
+ ret = Diagnostician.INSTANCE.validate(UMLPackage.eINSTANCE.getNamedElement_Visibility().getEAttributeType(), newValue);
+ }
+ if(UMLViewsRepository.LoopNode.isLeaf == event.getAffectedEditor()) {
+ Object newValue = EcoreUtil.createFromString(UMLPackage.eINSTANCE.getRedefinableElement_IsLeaf().getEAttributeType(), newStringValue);
+ ret = Diagnostician.INSTANCE.validate(UMLPackage.eINSTANCE.getRedefinableElement_IsLeaf().getEAttributeType(), newValue);
+ }
+ if(UMLViewsRepository.LoopNode.mustIsolate == event.getAffectedEditor()) {
+ Object newValue = EcoreUtil.createFromString(UMLPackage.eINSTANCE.getStructuredActivityNode_MustIsolate().getEAttributeType(), newStringValue);
+ ret = Diagnostician.INSTANCE.validate(UMLPackage.eINSTANCE.getStructuredActivityNode_MustIsolate().getEAttributeType(), newValue);
+ }
+ if(UMLViewsRepository.LoopNode.isTestedFirst == event.getAffectedEditor()) {
+ Object newValue = EcoreUtil.createFromString(UMLPackage.eINSTANCE.getLoopNode_IsTestedFirst().getEAttributeType(), newStringValue);
+ ret = Diagnostician.INSTANCE.validate(UMLPackage.eINSTANCE.getLoopNode_IsTestedFirst().getEAttributeType(), newValue);
+ }
+
+ } catch (IllegalArgumentException iae) {
+ ret = BasicDiagnostic.toDiagnostic(iae);
+ }
+ }
+ return ret;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#validate()
+ */
+ public Diagnostic validate() {
+ Diagnostic validate = null;
+ if(IPropertiesEditionComponent.BATCH_MODE.equals(editing_mode)) {
+ EObject copy = EcoreUtil.copy(PropertiesContextService.getInstance().entryPointElement());
+ copy = PropertiesContextService.getInstance().entryPointComponent().getPropertiesEditionObject(copy);
+ validate = Diagnostician.INSTANCE.validate(copy);
+ } else if(IPropertiesEditionComponent.LIVE_MODE.equals(editing_mode))
+ validate = Diagnostician.INSTANCE.validate(loopNode);
+ // Start of user code for custom validation check
+
+ // End of user code
+
+ return validate;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#dispose()
+ */
+ public void dispose() {
+ if(semanticAdapter != null)
+ loopNode.eAdapters().remove(semanticAdapter);
+ }
+
+}

Back to the top