Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated/deprecated-plugins/sysml.deprecated/org.eclipse.papyrus.sysml.diagram.blockdiagram/src/org/eclipse/papyrus/sysml/diagram/blockdiagram/edit/policies/ResourceCanonicalEditPolicy.java')
-rw-r--r--deprecated/deprecated-plugins/sysml.deprecated/org.eclipse.papyrus.sysml.diagram.blockdiagram/src/org/eclipse/papyrus/sysml/diagram/blockdiagram/edit/policies/ResourceCanonicalEditPolicy.java152
1 files changed, 152 insertions, 0 deletions
diff --git a/deprecated/deprecated-plugins/sysml.deprecated/org.eclipse.papyrus.sysml.diagram.blockdiagram/src/org/eclipse/papyrus/sysml/diagram/blockdiagram/edit/policies/ResourceCanonicalEditPolicy.java b/deprecated/deprecated-plugins/sysml.deprecated/org.eclipse.papyrus.sysml.diagram.blockdiagram/src/org/eclipse/papyrus/sysml/diagram/blockdiagram/edit/policies/ResourceCanonicalEditPolicy.java
new file mode 100644
index 00000000000..76c8879eeea
--- /dev/null
+++ b/deprecated/deprecated-plugins/sysml.deprecated/org.eclipse.papyrus.sysml.diagram.blockdiagram/src/org/eclipse/papyrus/sysml/diagram/blockdiagram/edit/policies/ResourceCanonicalEditPolicy.java
@@ -0,0 +1,152 @@
+/*****************************************************************************
+ * Copyright (c) 2010 Atos Origin.
+ *
+ *
+ * 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:
+ * Atos Origin - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.diagram.blockdiagram.edit.policies;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalConnectionEditPolicy;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.resource.ResourcePackage;
+import org.eclipse.papyrus.sysml.diagram.blockdiagram.edit.parts.BlockEditPart;
+import org.eclipse.papyrus.sysml.diagram.blockdiagram.part.SysmlDiagramUpdater;
+import org.eclipse.papyrus.sysml.diagram.blockdiagram.part.SysmlNodeDescriptor;
+import org.eclipse.papyrus.sysml.diagram.blockdiagram.part.SysmlVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ResourceCanonicalEditPolicy extends CanonicalConnectionEditPolicy {
+
+ /**
+ * @generated
+ */
+ Set myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected List getSemanticChildrenList() {
+ View viewObject = (View)getHost().getModel();
+ List result = new LinkedList();
+ for(Iterator it = SysmlDiagramUpdater.getResource_1000SemanticChildren(viewObject).iterator(); it.hasNext();) {
+ result.add(((SysmlNodeDescriptor)it.next()).getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean shouldDeleteView(View view) {
+ return true;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection semanticChildren, final View view) {
+ int visualID = SysmlVisualIDRegistry.getVisualID(view);
+ switch(visualID) {
+ case BlockEditPart.VISUAL_ID:
+ if(!semanticChildren.contains(view.getElement())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getDefaultFactoryHint() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if(myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet();
+ myFeaturesToSynchronize.add(ResourcePackage.eINSTANCE.getResource_Eobjects());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ protected List getSemanticConnectionsList() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getSourceElement(EObject relationship) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getTargetElement(EObject relationship) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean shouldIncludeConnection(Edge connector, Collection children) {
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ List createdViews = new LinkedList();
+ createdViews.addAll(refreshSemanticChildren());
+ List createdConnectionViews = new LinkedList();
+ createdConnectionViews.addAll(refreshSemanticConnections());
+
+ if(createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host().getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ createdViews.addAll(createdConnectionViews);
+ makeViewsImmutable(createdViews);
+ }
+
+ /**
+ * @generated
+ */
+ private Diagram getDiagram() {
+ return ((View)getHost().getModel()).getDiagram();
+ }
+
+}

Back to the top