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/PackageBasePropertiesEditionComponent.java')
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.tabbedproperties.uml/generated/org/eclipse/papyrus/tabbedproperties/uml/components/PackageBasePropertiesEditionComponent.java787
1 files changed, 787 insertions, 0 deletions
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.tabbedproperties.uml/generated/org/eclipse/papyrus/tabbedproperties/uml/components/PackageBasePropertiesEditionComponent.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.tabbedproperties.uml/generated/org/eclipse/papyrus/tabbedproperties/uml/components/PackageBasePropertiesEditionComponent.java
new file mode 100644
index 00000000000..2b2c51c4528
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.tabbedproperties.uml/generated/org/eclipse/papyrus/tabbedproperties/uml/components/PackageBasePropertiesEditionComponent.java
@@ -0,0 +1,787 @@
+/*******************************************************************************
+ * 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.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.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.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.Package_PropertiesEditionPart;
+import org.eclipse.papyrus.tabbedproperties.uml.parts.UMLViewsRepository;
+import org.eclipse.uml2.uml.Constraint;
+import org.eclipse.uml2.uml.ElementImport;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageImport;
+import org.eclipse.uml2.uml.PackageMerge;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.VisibilityKind;
+
+// End of user code
+
+/**
+ * @author <a href="mailto:jerome.benois@obeo.fr">Jerome Benois</a>
+ */
+public class PackageBasePropertiesEditionComponent extends StandardPropertiesEditionComponent {
+
+ public static String BASE_PART = "Base"; //$NON-NLS-1$
+
+ private String[] parts = { BASE_PART };
+
+ /**
+ * The EObject to edit
+ */
+ private Package package_;
+
+ /**
+ * The Base part
+ */
+ private Package_PropertiesEditionPart basePart;
+
+ /**
+ * Default constructor
+ */
+ public PackageBasePropertiesEditionComponent(EObject package_, String editing_mode) {
+ if(package_ instanceof Package) {
+ this.package_ = (Package)package_;
+ if(IPropertiesEditionComponent.LIVE_MODE.equals(editing_mode)) {
+ semanticAdapter = initializeSemanticAdapter();
+ this.package_.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)
+ PackageBasePropertiesEditionComponent.this.dispose();
+ else {
+ 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(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getNamespace_ElementImport()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getNamespace_ElementImport())) {
+ basePart.updateElementImport(package_);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getNamespace_PackageImport()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getNamespace_PackageImport())) {
+ basePart.updatePackageImport(package_);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getNamespace_OwnedRule()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getNamespace_OwnedRule())) {
+ basePart.updateOwnedRule(package_);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getTemplateableElement_TemplateBinding()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getTemplateableElement_TemplateBinding())) {
+ basePart.updateTemplateBinding(package_);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getPackage_PackageMerge()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getPackage_PackageMerge())) {
+ basePart.updatePackageMerge(package_);
+ }
+ if(msg.getFeature() != null &&
+ (((EStructuralFeature)msg.getFeature()) == UMLPackage.eINSTANCE.getPackage_PackagedElement()
+ || ((EStructuralFeature)msg.getFeature()).getEContainingClass() == UMLPackage.eINSTANCE.getPackage_PackagedElement())) {
+ basePart.updatePackagedElement(package_);
+ }
+
+
+ }
+ }
+
+ };
+ }
+
+ /**
+ * {@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.Package_.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(package_ != null && BASE_PART.equals(key)) {
+ if(basePart == null) {
+ IPropertiesEditionPartProvider provider = PropertiesEditionPartProviderService.getInstance().getProvider(UMLViewsRepository.class);
+ if(provider != null) {
+ basePart = (Package_PropertiesEditionPart)provider.getPropertiesEditionPart(UMLViewsRepository.Package_.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.Package_.class)
+ this.basePart = (Package_PropertiesEditionPart)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.Package_.class) {
+ ((IPropertiesEditionPart)basePart).setContext(elt, allResource);
+ final Package package_ = (Package)elt;
+ // init values
+ if(package_.getName() != null)
+ basePart.setName(package_.getName());
+
+ basePart.initVisibility((EEnum)UMLPackage.eINSTANCE.getNamedElement_Visibility().getEType(), package_.getVisibility());
+ basePart.initElementImport(package_, null, UMLPackage.eINSTANCE.getNamespace_ElementImport());
+ basePart.initPackageImport(package_, null, UMLPackage.eINSTANCE.getNamespace_PackageImport());
+ basePart.initOwnedRule(package_, null, UMLPackage.eINSTANCE.getNamespace_OwnedRule());
+ basePart.initTemplateBinding(package_, null, UMLPackage.eINSTANCE.getTemplateableElement_TemplateBinding());
+ basePart.initPackageMerge(package_, null, UMLPackage.eINSTANCE.getPackage_PackageMerge());
+ basePart.initPackagedElement(package_, null, UMLPackage.eINSTANCE.getPackage_PackagedElement());
+
+ // init filters
+
+
+ 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.addFilterToTemplateBinding(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 TemplateBinding); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for templateBinding
+
+ // End of user code
+ basePart.addFilterToPackageMerge(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 PackageMerge); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for packageMerge
+
+ // End of user code
+ basePart.addFilterToPackagedElement(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 PackageableElement); //$NON-NLS-1$
+
+ }
+
+ });
+ // Start of user code for additional businessfilters for packagedElement
+
+ // 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(package_ != null) {
+ cc.append(SetCommand.create(editingDomain, package_, UMLPackage.eINSTANCE.getNamedElement_Name(), basePart.getName()));
+
+ cc.append(SetCommand.create(editingDomain, package_, UMLPackage.eINSTANCE.getNamedElement_Visibility(), basePart.getVisibility()));
+
+ List elementImportToAddFromElementImport = basePart.getElementImportToAdd();
+ for(Iterator iter = elementImportToAddFromElementImport.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, package_, 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, package_, UMLPackage.eINSTANCE.getElementImport(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List packageImportToAddFromPackageImport = basePart.getPackageImportToAdd();
+ for(Iterator iter = packageImportToAddFromPackageImport.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, package_, 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, package_, UMLPackage.eINSTANCE.getPackageImport(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List ownedRuleToAddFromOwnedRule = basePart.getOwnedRuleToAdd();
+ for(Iterator iter = ownedRuleToAddFromOwnedRule.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, package_, 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, package_, UMLPackage.eINSTANCE.getConstraint(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List templateBindingToAddFromTemplateBinding = basePart.getTemplateBindingToAdd();
+ for(Iterator iter = templateBindingToAddFromTemplateBinding.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, package_, UMLPackage.eINSTANCE.getTemplateableElement_TemplateBinding(), iter.next()));
+ Map templateBindingToRefreshFromTemplateBinding = basePart.getTemplateBindingToEdit();
+ for(Iterator iter = templateBindingToRefreshFromTemplateBinding.keySet().iterator(); iter.hasNext();) {
+
+
+
+ TemplateBinding nextElement = (TemplateBinding)iter.next();
+ TemplateBinding templateBinding = (TemplateBinding)templateBindingToRefreshFromTemplateBinding.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, templateBinding.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List templateBindingToRemoveFromTemplateBinding = basePart.getTemplateBindingToRemove();
+ for(Iterator iter = templateBindingToRemoveFromTemplateBinding.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List templateBindingToMoveFromTemplateBinding = basePart.getTemplateBindingToMove();
+ for(Iterator iter = templateBindingToMoveFromTemplateBinding.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, package_, UMLPackage.eINSTANCE.getTemplateBinding(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List packageMergeToAddFromPackageMerge = basePart.getPackageMergeToAdd();
+ for(Iterator iter = packageMergeToAddFromPackageMerge.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, package_, UMLPackage.eINSTANCE.getPackage_PackageMerge(), iter.next()));
+ Map packageMergeToRefreshFromPackageMerge = basePart.getPackageMergeToEdit();
+ for(Iterator iter = packageMergeToRefreshFromPackageMerge.keySet().iterator(); iter.hasNext();) {
+
+
+
+ PackageMerge nextElement = (PackageMerge)iter.next();
+ PackageMerge packageMerge = (PackageMerge)packageMergeToRefreshFromPackageMerge.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, packageMerge.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List packageMergeToRemoveFromPackageMerge = basePart.getPackageMergeToRemove();
+ for(Iterator iter = packageMergeToRemoveFromPackageMerge.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List packageMergeToMoveFromPackageMerge = basePart.getPackageMergeToMove();
+ for(Iterator iter = packageMergeToMoveFromPackageMerge.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, package_, UMLPackage.eINSTANCE.getPackageMerge(), moveElement.getElement(), moveElement.getIndex()));
+ }
+ List packagedElementToAddFromPackagedElement = basePart.getPackagedElementToAdd();
+ for(Iterator iter = packagedElementToAddFromPackagedElement.iterator(); iter.hasNext();)
+ cc.append(AddCommand.create(editingDomain, package_, UMLPackage.eINSTANCE.getPackage_PackagedElement(), iter.next()));
+ Map packagedElementToRefreshFromPackagedElement = basePart.getPackagedElementToEdit();
+ for(Iterator iter = packagedElementToRefreshFromPackagedElement.keySet().iterator(); iter.hasNext();) {
+
+
+
+ PackageableElement nextElement = (PackageableElement)iter.next();
+ PackageableElement packagedElement = (PackageableElement)packagedElementToRefreshFromPackagedElement.get(nextElement);
+
+ for(EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) {
+ if(feature.isChangeable() && !(feature instanceof EReference && ((EReference)feature).isContainer())) {
+ cc.append(SetCommand.create(editingDomain, nextElement, feature, packagedElement.eGet(feature)));
+ }
+ }
+
+
+
+ }
+ List packagedElementToRemoveFromPackagedElement = basePart.getPackagedElementToRemove();
+ for(Iterator iter = packagedElementToRemoveFromPackagedElement.iterator(); iter.hasNext();)
+ cc.append(DeleteCommand.create(editingDomain, iter.next()));
+ List packagedElementToMoveFromPackagedElement = basePart.getPackagedElementToMove();
+ for(Iterator iter = packagedElementToMoveFromPackagedElement.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, package_, UMLPackage.eINSTANCE.getPackageableElement(), 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 Package) {
+ Package package_ToUpdate = (Package)source;
+ package_ToUpdate.setName(basePart.getName());
+
+ package_ToUpdate.setVisibility((VisibilityKind)basePart.getVisibility());
+
+ package_ToUpdate.getElementImports().addAll(basePart.getElementImportToAdd());
+ package_ToUpdate.getPackageImports().addAll(basePart.getPackageImportToAdd());
+ package_ToUpdate.getOwnedRules().addAll(basePart.getOwnedRuleToAdd());
+ package_ToUpdate.getTemplateBindings().addAll(basePart.getTemplateBindingToAdd());
+ package_ToUpdate.getPackageMerges().addAll(basePart.getPackageMergeToAdd());
+ package_ToUpdate.getPackagedElements().addAll(basePart.getPackagedElementToAdd());
+
+
+ return package_ToUpdate;
+ } 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.Package_.name == event.getAffectedEditor())
+ command.append(SetCommand.create(liveEditingDomain, package_, UMLPackage.eINSTANCE.getNamedElement_Name(), event.getNewValue()));
+
+ if(UMLViewsRepository.Package_.visibility == event.getAffectedEditor())
+ command.append(SetCommand.create(liveEditingDomain, package_, UMLPackage.eINSTANCE.getNamedElement_Visibility(), event.getNewValue()));
+
+ if(UMLViewsRepository.Package_.elementImport == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ ElementImport oldValue = (ElementImport)event.getOldValue();
+ ElementImport newValue = (ElementImport)event.getNewValue();
+
+
+ // TODO: Complete the package_ 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, package_, 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, package_, UMLPackage.eINSTANCE.getElementImport(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.Package_.packageImport == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ PackageImport oldValue = (PackageImport)event.getOldValue();
+ PackageImport newValue = (PackageImport)event.getNewValue();
+
+
+ // TODO: Complete the package_ 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, package_, 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, package_, UMLPackage.eINSTANCE.getPackageImport(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.Package_.ownedRule == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ Constraint oldValue = (Constraint)event.getOldValue();
+ Constraint newValue = (Constraint)event.getNewValue();
+
+
+ // TODO: Complete the package_ 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, package_, 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, package_, UMLPackage.eINSTANCE.getConstraint(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.Package_.templateBinding == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ TemplateBinding oldValue = (TemplateBinding)event.getOldValue();
+ TemplateBinding newValue = (TemplateBinding)event.getNewValue();
+
+
+ // TODO: Complete the package_ 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, package_, UMLPackage.eINSTANCE.getTemplateableElement_TemplateBinding(), 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, package_, UMLPackage.eINSTANCE.getTemplateBinding(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.Package_.packageMerge == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ PackageMerge oldValue = (PackageMerge)event.getOldValue();
+ PackageMerge newValue = (PackageMerge)event.getNewValue();
+
+
+ // TODO: Complete the package_ 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, package_, UMLPackage.eINSTANCE.getPackage_PackageMerge(), 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, package_, UMLPackage.eINSTANCE.getPackageMerge(), event.getNewValue(), event.getNewIndex()));
+ }
+ if(UMLViewsRepository.Package_.packagedElement == event.getAffectedEditor()) {
+ if(PropertiesEditionEvent.SET == event.getKind()) {
+ PackageableElement oldValue = (PackageableElement)event.getOldValue();
+ PackageableElement newValue = (PackageableElement)event.getNewValue();
+
+
+ // TODO: Complete the package_ 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, package_, UMLPackage.eINSTANCE.getPackage_PackagedElement(), 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, package_, UMLPackage.eINSTANCE.getPackageableElement(), 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.Package_.name == event.getAffectedEditor())
+ basePart.setMessageForName(diag.getMessage(), IMessageProvider.ERROR);
+
+
+
+
+
+ } else {
+ if(UMLViewsRepository.Package_.name == event.getAffectedEditor())
+ basePart.unsetMessageForName();
+
+
+
+
+
+ }
+ }
+ }
+
+ /**
+ * {@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.Package_.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.Package_.visibility == event.getAffectedEditor()) {
+ Object newValue = EcoreUtil.createFromString(UMLPackage.eINSTANCE.getNamedElement_Visibility().getEAttributeType(), newStringValue);
+ ret = Diagnostician.INSTANCE.validate(UMLPackage.eINSTANCE.getNamedElement_Visibility().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(package_);
+ // 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)
+ package_.eAdapters().remove(semanticAdapter);
+ }
+
+}

Back to the top