Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Tessier2013-10-11 13:06:07 +0000
committerPatrick Tessier2013-10-15 15:50:30 +0000
commit014a5449518e8794f34d0603a779d60eef169840 (patch)
treead8d8d20345e2642221ddfee3d7afd51391f2a04 /plugins
parent0db6ef8ff360e859253838f056e5bbca5d5b29ce (diff)
downloadorg.eclipse.papyrus-014a5449518e8794f34d0603a779d60eef169840.tar.gz
org.eclipse.papyrus-014a5449518e8794f34d0603a779d60eef169840.tar.xz
org.eclipse.papyrus-014a5449518e8794f34d0603a779d60eef169840.zip
416696: [Component Diagram] The Lollipop notation is not properly drawn
https://bugs.eclipse.org/bugs/show_bug.cgi?id=416696
Diffstat (limited to 'plugins')
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/command/CreateLollipopPortCommand.java134
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomDependencyBranchEditPart.java8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomDependencyNodeEditPart.java6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomInterfaceEditPart.java34
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomModelEditPart.java6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomModelEditPartCN.java7
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomPackageEditPart.java6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomPackageEditPartCN.java6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomUsageEditPart.java1
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/InterfaceRealizationLinkFigure.java7
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/UsageLinkFigure.java10
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/nodes/EllipseFigure.java18
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/DisplayInterfaceMDialog.java166
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/ExtendedSelectionEditor.java32
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/InterfaceManagerDialog.java8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/messages.properties44
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/model/ComponentDiagram.gmfgen3
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.properties2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.xml20
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPart.java1
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPartCN.java1
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPartPCN.java1
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/InterfacePortLinkEditPart.java56
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/UMLEditPartFactory.java2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/policies/ModelCanonicalEditPolicy.java3
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/policies/UMLBaseItemSemanticEditPolicy.java14
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/part/Messages.java88
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/preferences/DiagramPreferenceInitializer.java1
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/preferences/InterfacePortLinkPreferencePage.java34
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLElementTypes.java9
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLViewProvider.java30
31 files changed, 630 insertions, 128 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/command/CreateLollipopPortCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/command/CreateLollipopPortCommand.java
index 7ae40f32469..c7571335613 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/command/CreateLollipopPortCommand.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/command/CreateLollipopPortCommand.java
@@ -1,11 +1,28 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Patrick Tessier (CEA LIST) - Initial API and implementation
+ /*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.component.custom.command;
import java.util.ArrayList;
import java.util.Collection;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.emf.transaction.RecordingCommand;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.gef.EditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
import org.eclipse.gmf.runtime.notation.Bounds;
import org.eclipse.gmf.runtime.notation.EObjectValueStyle;
import org.eclipse.gmf.runtime.notation.Edge;
@@ -18,13 +35,26 @@ import org.eclipse.papyrus.uml.diagram.component.edit.parts.PortEditPart;
import org.eclipse.papyrus.uml.diagram.component.providers.UMLViewProvider;
import org.eclipse.uml2.uml.Interface;
-
+/**
+ * this class is used to create the lollipop interface from a port
+ *
+ */
public class CreateLollipopPortCommand extends RecordingCommand {
protected ArrayList<Interface> providedInterface= new ArrayList<Interface>();
protected ArrayList<Interface> requiredInterface= new ArrayList<Interface>();
protected PortEditPart porteditPart=null;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param domain the transactional editing domain
+ * @param provided a list of provided interface to display
+ * @param required a list of required interface to display
+ * @param portEditpart the port editpart form which interfaces will be displayed
+ */
public CreateLollipopPortCommand(TransactionalEditingDomain domain, Collection<Interface> provided, Collection<Interface> required, PortEditPart portEditpart ) {
super(domain,"Creation of lollipop for ports");
providedInterface.addAll(provided);
@@ -35,41 +65,89 @@ public class CreateLollipopPortCommand extends RecordingCommand {
@Override
protected void doExecute() {
UMLViewProvider umlViewProvider= new UMLViewProvider();
+ //get the position of the port around its container...
+ IFigure parentFigure=((GraphicalEditPart)porteditPart.getParent()).getFigure();
+
+
+ Rectangle bounds = parentFigure.getBounds();
+
+ Rectangle insideRect = bounds.getCopy().shrink(new Insets(30));
+ int position = insideRect.getPosition(porteditPart.getLocation());
//take the great parent of the port
EditPart componentEditPart=porteditPart.getParent();
EditPart container= componentEditPart.getParent();
for(Interface currentRequired : requiredInterface) {
- Node node=umlViewProvider.createNamedElement_2003(currentRequired,(View) container.getModel(), -1, true, porteditPart.getDiagramPreferencesHint());
- ((Bounds)node.getLayoutConstraint()).setWidth(20);
- ((Bounds)node.getLayoutConstraint()).setHeight(20);
-
- Edge edge=umlViewProvider.createLink_4016(((View)porteditPart.getModel()).getDiagram(), -1, true, porteditPart.getDiagramPreferencesHint());
-
- IdentityAnchor anchor = NotationFactory.eINSTANCE.createIdentityAnchor();
- edge.setSourceAnchor(anchor);
- anchor = NotationFactory.eINSTANCE.createIdentityAnchor();
- edge.setTargetAnchor(anchor);
- edge.setSource((View)porteditPart.getModel());
- edge.setTarget(node);
- edge.setElement(null);
+ Node node = createInterfacenode(umlViewProvider, container, currentRequired);
+ setPositionNode(node, position);
+ String kind="REQUIRED";
+ createEdge(umlViewProvider, node, kind);
}
for(Interface currentprovided : providedInterface) {
- Node node=umlViewProvider.createNamedElement_2003(currentprovided,(View) container.getModel(), -1, true, porteditPart.getDiagramPreferencesHint());
- ((Bounds)node.getLayoutConstraint()).setWidth(20);
- ((Bounds)node.getLayoutConstraint()).setHeight(20);
-
- Edge edge=umlViewProvider.createLink_4016(((View)porteditPart.getModel()).getDiagram(), -1, true, porteditPart.getDiagramPreferencesHint());
-
-
- IdentityAnchor anchor = NotationFactory.eINSTANCE.createIdentityAnchor();
- edge.setSourceAnchor(anchor);
- anchor = NotationFactory.eINSTANCE.createIdentityAnchor();
- edge.setTargetAnchor(anchor);
- edge.setSource((View)porteditPart.getModel());
- edge.setTarget(node);
- edge.setElement(null);
+ Node node = createInterfacenode(umlViewProvider, container, currentprovided);
+ setPositionNode(node, position);
+ String kind="PROVIDED";
+ createEdge(umlViewProvider, node, kind);
+
+ }
+ }
+/**
+ * creation of the edge form the port to the interface
+ * @param umlViewProvider
+ * @param node the node that represent the interface
+ * @param kind kind of the interface REQUIRED or PROVIDED
+ */
+ protected void createEdge(UMLViewProvider umlViewProvider, Node node, String kind) {
+ Edge edge=umlViewProvider.createLink_4018(((View)porteditPart.getModel()).getDiagram(), -1, true, porteditPart.getDiagramPreferencesHint());
+
+ IdentityAnchor anchor = NotationFactory.eINSTANCE.createIdentityAnchor();
+ edge.setSourceAnchor(anchor);
+ anchor = NotationFactory.eINSTANCE.createIdentityAnchor();
+ edge.setTargetAnchor(anchor);
+ edge.setSource((View)porteditPart.getModel());
+ edge.setTarget(node);
+ edge.setElement(null);
+ EObjectValueStyle eObjectValueStyle = (EObjectValueStyle)edge.createStyle(NotationPackage.eINSTANCE.getEObjectValueStyle());
+ eObjectValueStyle.setName(kind);
+ }
+
+ /**
+ * create the interface node
+ * @param umlViewProvider
+ * @param container the container of the interface node
+ * @param currentInterface the interface
+ * @return the node
+ */
+ protected Node createInterfacenode(UMLViewProvider umlViewProvider, EditPart container, Interface currentInterface) {
+ Node node=umlViewProvider.createNamedElement_2003(currentInterface,(View) container.getModel(), -1, true, porteditPart.getDiagramPreferencesHint());
+ ((Bounds)node.getLayoutConstraint()).setWidth(20);
+ ((Bounds)node.getLayoutConstraint()).setHeight(20);
+ return node;
+ }
+
+ /**
+ * use to place the interface node around the component form the port
+ * @param node the interface node
+ * @param position the position where is the port NORTH SOUTH, EAST, WEST
+ */
+ protected void setPositionNode(Node node, int position){
+ ((Bounds)node.getLayoutConstraint()).setX(porteditPart.getLocation().x);
+ ((Bounds)node.getLayoutConstraint()).setY(porteditPart.getLocation().y);
+ int distance=60;
+ if (position == PositionConstants.SOUTH) {
+ ((Bounds)node.getLayoutConstraint()).setY(((Bounds)node.getLayoutConstraint()).getY()+distance);
+ }
+ else if (position == PositionConstants.NORTH) {
+ ((Bounds)node.getLayoutConstraint()).setY(((Bounds)node.getLayoutConstraint()).getY()-distance);
+ }
+
+ else if (position == PositionConstants.EAST) {
+ ((Bounds)node.getLayoutConstraint()).setX(((Bounds)node.getLayoutConstraint()).getX()+distance);
+ }
+
+ else if (position == PositionConstants.WEST) {
+ ((Bounds)node.getLayoutConstraint()).setX(((Bounds)node.getLayoutConstraint()).getX()-distance);
}
}
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomDependencyBranchEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomDependencyBranchEditPart.java
index f71ed02074a..c1ad44b8973 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomDependencyBranchEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomDependencyBranchEditPart.java
@@ -21,7 +21,13 @@ import org.eclipse.papyrus.uml.diagram.component.edit.parts.DependencyNodeEditPa
* this a specific editpart used to overload the method createNodePlate
*/
public class CustomDependencyBranchEditPart extends DependencyBranchEditPart {
-
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param view
+ */
public CustomDependencyBranchEditPart(View view) {
super(view);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomDependencyNodeEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomDependencyNodeEditPart.java
index 346eddd4745..7ebe65996d9 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomDependencyNodeEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomDependencyNodeEditPart.java
@@ -23,6 +23,12 @@ import org.eclipse.papyrus.uml.diagram.component.edit.parts.DependencyNodeEditPa
*/
public class CustomDependencyNodeEditPart extends DependencyNodeEditPart {
+ /**
+ *
+ * Constructor.
+ *
+ * @param view
+ */
public CustomDependencyNodeEditPart(View view) {
super(view);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomInterfaceEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomInterfaceEditPart.java
index 0d41d4103e8..ff312ca2a60 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomInterfaceEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomInterfaceEditPart.java
@@ -21,13 +21,15 @@ import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.EditPart;
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
-import org.eclipse.gmf.runtime.gef.ui.internal.figures.CircleFigure;
+import org.eclipse.gmf.runtime.notation.EObjectValueStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.papyrus.infra.gmfdiag.preferences.utils.PreferenceConstantHelper;
import org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper;
import org.eclipse.papyrus.uml.diagram.component.custom.figure.nodes.EllipseFigure;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceEditPart;
+import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfacePortLinkEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceRealizationEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.UsageEditPart;
import org.eclipse.papyrus.uml.diagram.component.part.UMLDiagramEditorPlugin;
@@ -60,6 +62,8 @@ public class CustomInterfaceEditPart extends InterfaceEditPart {
@Override
protected void refreshBounds() {
super.refreshBounds();
+
+ //the interface is connected to an usage Link
if((getTargetConnections().size()==1) && (getTargetConnections().get(0) instanceof UsageEditPart)){
UsageEditPart usageEditPart=((UsageEditPart)getTargetConnections().get(0));
Point anchor=usageEditPart.getPrimaryShape().getEnd();
@@ -71,10 +75,34 @@ public class CustomInterfaceEditPart extends InterfaceEditPart {
this.getPrimaryShape().setRequired(true);
this.getPrimaryShape().setProvided(false);
this.getPrimaryShape().setOrientation(position);
+ }
+
+ //the interface is connected to a link for a port
+ if((getTargetConnections().size()==1) && (getTargetConnections().get(0) instanceof InterfacePortLinkEditPart)){
+ InterfacePortLinkEditPart interfaceLinkPort=((InterfacePortLinkEditPart)getTargetConnections().get(0));
+ Point anchor=interfaceLinkPort.getPrimaryShape().getEnd();
+
+ Rectangle bounds = this.getFigure().getBounds();
+
+ Rectangle insideRect = bounds.getCopy().shrink(new Insets(2));
+ int position = insideRect.getPosition(anchor);
+ EObjectValueStyle valueStyle=(EObjectValueStyle)((View)interfaceLinkPort.getModel()).getStyle(NotationPackage.eINSTANCE.getEObjectValueStyle());
+ if(valueStyle.getName().equals("REQUIRED")){
+ this.getPrimaryShape().setRequired(true);
+ this.getPrimaryShape().setProvided(false);
+ }
+ else{
+ this.getPrimaryShape().setRequired(false);
+ this.getPrimaryShape().setProvided(true);
+ }
+
+ this.getPrimaryShape().setOrientation(position);
}
+
+
else if((getTargetConnections().size()==1) && (getTargetConnections().get(0) instanceof InterfaceRealizationEditPart)){
this.getPrimaryShape().setRequired(false);
this.getPrimaryShape().setProvided(true);
@@ -114,8 +142,8 @@ public class CustomInterfaceEditPart extends InterfaceEditPart {
this.getPrimaryShape().setOrientation(position);
}
if(usageEditPart!=null && interfaceRealizationEditPart!=null){
- this.getPrimaryShape().setRequired(true);
- this.getPrimaryShape().setProvided(true);
+ //this.getPrimaryShape().setRequired(true);
+ //this.getPrimaryShape().setProvided(true);
Point anchor=usageEditPart.getPrimaryShape().getEnd();
Rectangle bounds = this.getFigure().getBounds();
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomModelEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomModelEditPart.java
index 902b7438cb2..3627f51dc69 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomModelEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomModelEditPart.java
@@ -32,6 +32,12 @@ public class CustomModelEditPart extends ModelEditPart {
protected static final String ICONS_PATH = "icons/Triangle.gif"; //$NON-NLS-1$
+ /**
+ *
+ * Constructor.
+ *
+ * @param view
+ */
public CustomModelEditPart(View view) {
super(view);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomModelEditPartCN.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomModelEditPartCN.java
index 2311a33bd44..a38f5f9d069 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomModelEditPartCN.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomModelEditPartCN.java
@@ -31,7 +31,12 @@ import org.eclipse.papyrus.uml.diagram.component.part.UMLDiagramEditorPlugin;
public class CustomModelEditPartCN extends ModelEditPartCN {
protected static final String ICONS_PATH = "icons/Triangle.gif"; //$NON-NLS-1$
-
+ /**
+ *
+ * Constructor.
+ *
+ * @param view
+ */
public CustomModelEditPartCN(View view) {
super(view);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomPackageEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomPackageEditPart.java
index 70a2411bd3c..b52183e8989 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomPackageEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomPackageEditPart.java
@@ -27,6 +27,12 @@ import org.eclipse.papyrus.uml.diagram.component.part.UMLDiagramEditorPlugin;
*/
public class CustomPackageEditPart extends PackageEditPart {
+ /**
+ *
+ * Constructor.
+ *
+ * @param view
+ */
public CustomPackageEditPart(View view) {
super(view);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomPackageEditPartCN.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomPackageEditPartCN.java
index 66d92cc1abc..7db7e1a7a74 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomPackageEditPartCN.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomPackageEditPartCN.java
@@ -27,6 +27,12 @@ import org.eclipse.papyrus.uml.diagram.component.part.UMLDiagramEditorPlugin;
*/
public class CustomPackageEditPartCN extends PackageEditPartCN {
+ /**
+ *
+ * Constructor.
+ *
+ * @param view
+ */
public CustomPackageEditPartCN(View view) {
super(view);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomUsageEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomUsageEditPart.java
index 80d6b9ebb01..970a8a6816c 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomUsageEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/edit/part/CustomUsageEditPart.java
@@ -16,7 +16,6 @@ package org.eclipse.papyrus.uml.diagram.component.custom.edit.part;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceEditPartPCN;
-import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceRealizationEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.UsageEditPart;
/**
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/InterfaceRealizationLinkFigure.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/InterfaceRealizationLinkFigure.java
index c9c9c6c4bba..57b47ea0e5b 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/InterfaceRealizationLinkFigure.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/InterfaceRealizationLinkFigure.java
@@ -25,13 +25,18 @@ import org.eclipse.papyrus.uml.diagram.common.figure.edge.InterfaceRealizationFi
*/
public class InterfaceRealizationLinkFigure extends InterfaceRealizationFigure {
-
+ /**
+ * display the link as line
+ */
public void displayAsAlink(){
setTargetDecoration(null);
this.setLineStyle(Graphics.LINE_SOLID); // line drawing style
}
+ /**
+ * display it as the UML representation with tis decoration
+ */
public void displayAsUMLShape(){
PolygonDecoration dec = new PolygonDecoration();
dec.setScale(15, 5);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/UsageLinkFigure.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/UsageLinkFigure.java
index 216fcee1f3e..e651a1e988d 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/UsageLinkFigure.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/UsageLinkFigure.java
@@ -14,7 +14,6 @@
package org.eclipse.papyrus.uml.diagram.component.custom.figure.edges;
import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.papyrus.uml.diagram.common.figure.edge.DashedEdgeFigure;
/**this class has to option to display it:
@@ -23,14 +22,17 @@ import org.eclipse.papyrus.uml.diagram.common.figure.edge.DashedEdgeFigure;
public class UsageLinkFigure extends DashedEdgeFigure{
- private final int[] dashes = new int[10];
-
+ /**
+ * display it as a line
+ */
public void displayAsAlink(){
setArrow(false);
this.setLineStyle(Graphics.LINE_SOLID);
}
-
+ /**
+ * display it as the UML representation with its decoration
+ */
public void displayAsUMLShape(){
this.setLineStyle(Graphics.LINE_CUSTOM);
setArrow(true);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/nodes/EllipseFigure.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/nodes/EllipseFigure.java
index 4f4540fb69d..85f2b5e08de 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/nodes/EllipseFigure.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/nodes/EllipseFigure.java
@@ -1,6 +1,3 @@
-package org.eclipse.papyrus.uml.diagram.component.custom.figure.nodes;
-
-
/******************************************************************************
* Copyright (c) 2003, 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
@@ -12,10 +9,11 @@ package org.eclipse.papyrus.uml.diagram.component.custom.figure.nodes;
* IBM Corporation - initial API and implementation
****************************************************************************/
+package org.eclipse.papyrus.uml.diagram.component.custom.figure.nodes;
+
+
import org.eclipse.draw2d.ConnectionAnchor;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.PrecisionPoint;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gmf.runtime.draw2d.ui.figures.IOvalAnchorableFigure;
@@ -29,7 +27,7 @@ import org.eclipse.gmf.runtime.gef.ui.figures.SlidableOvalAnchor;
*/
public class EllipseFigure extends DefaultSizeNodeFigure implements IOvalAnchorableFigure {
-
+
/**
* Constructor for StateLineFigure.
* @param width figure width
@@ -38,14 +36,14 @@ public class EllipseFigure extends DefaultSizeNodeFigure implements IOvalAnchora
public EllipseFigure(int width, int height) {
super( width, height );
}
-
-
+
+
/** Return <code>getBounds()</code>. */
public final Rectangle getOvalBounds() {
return getBounds();
}
-
+
/* (non-Javadoc)
* @see org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure#createAnchor(org.eclipse.draw2d.geometry.PrecisionPoint)
*/
@@ -56,7 +54,7 @@ public class EllipseFigure extends DefaultSizeNodeFigure implements IOvalAnchora
return createDefaultAnchor();
return new SlidableOvalAnchor(this, p);
}
-
+
/* (non-Javadoc)
* @see org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure#createDefaultAnchor()
*/
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/DisplayInterfaceMDialog.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/DisplayInterfaceMDialog.java
index 1f51da7a7f7..48b871d46e3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/DisplayInterfaceMDialog.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/DisplayInterfaceMDialog.java
@@ -1,14 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Patrick Tessier (CEA LIST) - Initial API and implementation
+ /*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.component.custom.ui;
-import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
import java.util.HashSet;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gef.requests.GroupRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
+import org.eclipse.gmf.runtime.notation.EObjectValueStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.papyrus.uml.diagram.common.command.wrappers.EMFtoGEFCommandWrapper;
import org.eclipse.papyrus.uml.diagram.component.custom.command.CreateLollipopPortCommand;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.PortEditPart;
import org.eclipse.papyrus.uml.diagram.component.part.UMLDiagramEditorPlugin;
@@ -25,19 +44,53 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.uml2.uml.Interface;
import org.eclipse.uml2.uml.Port;
-
+/**
+ * this interface is used to displayed required and provided interfaces
+ *
+ */
public class DisplayInterfaceMDialog extends InterfaceManagerDialog {
- protected HashSet<Interface> displayedInterface=new HashSet<Interface>();
+ protected HashSet<Interface> displayedRequiredInterface=new HashSet<Interface>();
+ protected HashSet<Interface> displayedProvidedInterface=new HashSet<Interface>();
protected PortEditPart portEditPart=null;
+ protected HashMap<Interface, GraphicalEditPart> initialList=new HashMap<Interface, GraphicalEditPart>();
+ /**
+ *
+ * Constructor.
+ *
+ * @param parentShell
+ * @param portEditPart
+ */
public DisplayInterfaceMDialog(Shell parentShell, PortEditPart portEditPart) {
super(parentShell, (Port)portEditPart.resolveSemanticElement());
this.portEditPart=portEditPart;
this.selectorLabelProvider=new DisplayedSelectorLabelProvider();
+ initDisplayInterfaceList();
}
- protected void updateDisplayInterfaceList(Interface anInterface){
+ /**
+ * init the collection to detect displayed interfaces
+ */
+ protected void initDisplayInterfaceList(){
+
+ if((portEditPart.getSourceConnections().size()>0) ){
+
+ for(Object currentConnection : portEditPart.getSourceConnections()) {
+ ConnectionEditPart connection=(ConnectionEditPart) currentConnection;
+ EObjectValueStyle valueStyle=(EObjectValueStyle)((View)connection.getModel()).getStyle(NotationPackage.eINSTANCE.getEObjectValueStyle());
+ if( valueStyle!=null){
+ if(valueStyle.getName().equals("REQUIRED")){
+ displayedRequiredInterface.add((Interface)((GraphicalEditPart)connection.getTarget()).resolveSemanticElement());
+ }
+ else{
+ displayedProvidedInterface.add((Interface)((GraphicalEditPart)connection.getTarget()).resolveSemanticElement());
+ }
+ initialList.put((Interface)((GraphicalEditPart)connection.getTarget()).resolveSemanticElement(),((GraphicalEditPart)connection.getTarget()));
+
+ }
+ }
+ }
}
@@ -53,7 +106,7 @@ public class DisplayInterfaceMDialog extends InterfaceManagerDialog {
if( supCmd.canExecute()){
cmd.add(super.getCommand());
}
- //cmd.add(createDisplayedInterfaceCommand());
+ cmd.add(createDisplayedInterfaceCommand());
return cmd;
}
@Override
@@ -62,8 +115,9 @@ public class DisplayInterfaceMDialog extends InterfaceManagerDialog {
Composite subComposite= new Composite(parent, SWT.NONE);
subComposite.setLayout(new FormLayout());
+ //createDisplay button
Button Displaybutton = new Button(subComposite, SWT.PUSH);
- Displaybutton.setText("DisplayInterface");
+ Displaybutton.setText("Display seletected Interface");
DisplayInterfaceListener displayInterfaceListener= new DisplayInterfaceListener();
Displaybutton.addSelectionListener(displayInterfaceListener);
@@ -72,31 +126,113 @@ public class DisplayInterfaceMDialog extends InterfaceManagerDialog {
formData.left = new FormAttachment(0,700);
Displaybutton.setLayoutData(formData);
+ //create Remove
+ Button RemoveDisplaybutton = new Button(subComposite, SWT.PUSH);
+ RemoveDisplaybutton.setText(" Do not Display selected Interface");
+ RemoveDisplayInterfaceListener removeDisplayInterfaceListener= new RemoveDisplayInterfaceListener();
+ RemoveDisplaybutton.addSelectionListener(removeDisplayInterfaceListener);
+ formData = new FormData();
+ formData.left = new FormAttachment(0,500);
+ RemoveDisplaybutton.setLayoutData(formData);
+
super.createEditors();
}
+
+ /**
+ *
+ * @return teh command that will be used to display interfaces
+ */
protected Command createDisplayedInterfaceCommand(){
- CreateLollipopPortCommand cmd= new CreateLollipopPortCommand(this.portEditPart.getEditingDomain(), displayedInterface, new ArrayList<Interface>(), this.portEditPart);
- return new org.eclipse.papyrus.commands.wrappers.EMFtoGEFCommandWrapper(cmd);
+ //update list from initial List
+ HashMap<Interface, GraphicalEditPart> viewToRemove= new HashMap<Interface, GraphicalEditPart>();
+ HashSet<Interface>requiredInterfaceToDisplay= new HashSet<Interface>();
+ HashSet<Interface>providedInterfaceToDisplay= new HashSet<Interface>();
+ // create the list of provided interface to display
+ for(Interface currentInterface : displayedProvidedInterface) {
+ if(!initialList.keySet().contains(currentInterface)){
+ providedInterfaceToDisplay.add(currentInterface);
+ }
+ }
+ // create the list of required interface to display
+ for(Interface currentInterface : displayedRequiredInterface) {
+ if(!initialList.keySet().contains(currentInterface)){
+ requiredInterfaceToDisplay.add(currentInterface);
+ }
+ }
+ // create the list of interface to not display
+ for(Interface currentInterface : initialList.keySet()) {
+ if((!displayedRequiredInterface.contains(currentInterface))&&(!displayedProvidedInterface.contains(currentInterface))){
+ viewToRemove.put(currentInterface, initialList.get(currentInterface));
+ }
+ }
+
+ CompoundCommand cmd= new CompoundCommand();
+ CreateLollipopPortCommand comd= new CreateLollipopPortCommand(this.portEditPart.getEditingDomain(),providedInterfaceToDisplay, requiredInterfaceToDisplay , this.portEditPart);
+ cmd.add( new org.eclipse.papyrus.commands.wrappers.EMFtoGEFCommandWrapper(comd));
+ if(viewToRemove.values().size()>0 ){
+ cmd.add(deleteDisplayInterface(viewToRemove.values()));
+ }
+ return cmd;
}
- //inner to class to display displayed interfaces
+ /**
+ * @param editPartToRemove list of editpart that represents displayed interfaces, never null
+ * @return the command of interface representation to remove, never null
+ */
+ protected Command deleteDisplayInterface(Collection<GraphicalEditPart> editPartToRemove){
+ CompoundCommand cmd= new CompoundCommand();
+ Request deleteViewRequest = new GroupRequest(RequestConstants.REQ_DELETE);
+
+
+ for(GraphicalEditPart editPart : editPartToRemove) {
+ cmd.add(editPart.getCommand(deleteViewRequest));
+ }
+
+ return cmd;
+ }
+
+ /**
+ * inner to class attached to a button to display interfaces
+ *
+ */
class DisplayInterfaceListener extends SelectionAdapter {
public void widgetSelected(SelectionEvent event) {
- displayedInterface.clear();
IStructuredSelection selection = (IStructuredSelection)providedEditor.getSelectedElementsViewer().getSelection();
for(Object o : selection.toArray()) {
- displayedInterface.add((Interface)o);
+ displayedProvidedInterface.add((Interface)o);
}
selection = (IStructuredSelection)requiredEditor.getSelectedElementsViewer().getSelection();
for(Object o : selection.toArray()) {
- displayedInterface.add((Interface)o);
+ displayedRequiredInterface.add((Interface)o);
}
providedEditor.getSelectedElementsViewer().refresh();
requiredEditor.getSelectedElementsViewer().refresh();
}
}
+
+ /**
+ * inner to class attached to a button to remove displayed interfaces
+ *
+ */
+ class RemoveDisplayInterfaceListener extends SelectionAdapter {
+ public void widgetSelected(SelectionEvent event) {
+
+ IStructuredSelection selection = (IStructuredSelection)providedEditor.getSelectedElementsViewer().getSelection();
+ for(Object o : selection.toArray()) {
+ displayedProvidedInterface.remove((Interface)o);
+ }
+ selection = (IStructuredSelection)requiredEditor.getSelectedElementsViewer().getSelection();
+ for(Object o : selection.toArray()) {
+ displayedRequiredInterface.remove((Interface)o);
+ }
+ providedEditor.getSelectedElementsViewer().refresh();
+ requiredEditor.getSelectedElementsViewer().refresh();
+ }
+
+ }
+
/**
*
@@ -110,7 +246,7 @@ public class DisplayInterfaceMDialog extends InterfaceManagerDialog {
@Override
protected Image getImage(EObject element) {
- if(displayedInterface.contains(element)){
+ if(displayedRequiredInterface.contains(element)||displayedProvidedInterface.contains(element)){
return UMLDiagramEditorPlugin.findImageDescriptor("icons/obj16/lollipop.gif").createImage();
}
return super.getImage(element);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/ExtendedSelectionEditor.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/ExtendedSelectionEditor.java
index ab57b777acb..748c329cd3a 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/ExtendedSelectionEditor.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/ExtendedSelectionEditor.java
@@ -1,20 +1,28 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Patrick Tessier (CEA LIST) - Initial API and implementation
+ /*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.component.custom.ui;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
-import java.util.List;
-import org.eclipse.jface.viewers.AbstractListViewer;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.papyrus.infra.widgets.Activator;
import org.eclipse.papyrus.infra.widgets.editors.IElementSelector;
-import org.eclipse.papyrus.infra.widgets.editors.SelectionEditor;
import org.eclipse.papyrus.infra.widgets.messages.Messages;
import org.eclipse.papyrus.infra.widgets.providers.CollectionContentProvider;
import org.eclipse.swt.SWT;
@@ -27,7 +35,10 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
-
+/**
+ * Extension of selection editor with a table to display icon of element
+ *normally this class must inherits of SelectionEditor but list and table are type that are not compatible, so entire creation of this class was needed
+ */
public class ExtendedSelectionEditor extends Composite implements SelectionListener {
@@ -53,7 +64,10 @@ public class ExtendedSelectionEditor extends Composite implements SelectionListe
/** The listViewer for chosen elements */
protected TableViewer selectedElementsViewer;
-
+ /**
+ *
+ * @return the table viewer in order to get the element selection
+ */
public TableViewer getSelectedElementsViewer() {
return selectedElementsViewer;
}
@@ -464,6 +478,12 @@ public class ExtendedSelectionEditor extends Composite implements SelectionListe
//Nothing to do
}
+ /**
+ *
+ * @param withAdditionalButton
+ * @param messageButton
+ * @param listener
+ */
public void setAdditionalButton(boolean withAdditionalButton, String messageButton, SelectionListener listener) {
this.withAdditionalButton = withAdditionalButton;
this.additionalButtonLabel = messageButton;
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/InterfaceManagerDialog.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/InterfaceManagerDialog.java
index 43feb75bc08..3644b750940 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/InterfaceManagerDialog.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/ui/InterfaceManagerDialog.java
@@ -14,7 +14,6 @@
package org.eclipse.papyrus.uml.diagram.component.custom.ui;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -30,7 +29,6 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.gef.EditPart;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.commands.CompoundCommand;
import org.eclipse.gef.commands.UnexecutableCommand;
@@ -63,16 +61,11 @@ import org.eclipse.papyrus.uml.service.types.element.UMLElementTypes;
import org.eclipse.papyrus.uml.tools.providers.UMLLabelProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorPart;
@@ -93,7 +86,6 @@ import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.Usage;
-// TODO: Auto-generated Javadoc
/**
* This class provides a Dialog to manage easily the provided and the required Interfaces for a {@link Port}.
*/
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/messages.properties b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/messages.properties
index 2b227007b2e..0df5b2ee507 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/messages.properties
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/messages.properties
@@ -105,3 +105,47 @@ createReceptionCreationTool_title=Reception
createReceptionCreationTool_desc=Create a Reception
InterfaceAttributeCompartmentEditPartCN_title=AttributeCompartment
InterfaceOperationCompartmentEditPartCN_title=OperationCompartment
+NodesGroup_title=Nodes
+NodesGroup_desc=Diagram Nodes
+LinksGroup_title=Links
+LinksGroup_desc=Diagram Links
+ConstraintCreationTool_title=Constraint
+ConstraintCreationTool_desc=Create a Constraint
+CommentCreationTool_title=Comment
+CommentCreationTool_desc=Create a Comment
+ComponentCreationTool_title=Component
+ComponentCreationTool_desc=Create a Component
+RectancleInterfaceCreationTool_title=Interface
+RectancleInterfaceCreationTool_desc=Create an Interface
+ModelCreationTool_title=Model
+ModelCreationTool_desc=Create a model
+PropertyCreationTool_title=Property
+PropertyCreationTool_desc=Create a Property
+OperationCreationTool_title=Operation
+OperationCreationTool_desc=Create an Operation
+PackageCreationTool_title=Package
+PackageCreationTool_desc=Create a Package
+PortCreationTool_title=Port
+PortCreationTool_desc=Create a Port
+ReceptionCreationTool_title=Reception
+ReceptionCreationTool_desc=Create a Reception
+LinkCreationTool_title=Link
+LinkCreationTool_desc=Create a Link (Comment / Constraint)
+DependencyCreationTool_title=Dependency
+DependencyCreationTool_desc=Create a Dependency
+DependencyBranchCreationTool_title=DependencyBranch
+DependencyBranchCreationTool_desc=Create a dependency branch
+AbstractionCreationTool_title=Abstraction
+AbstractionCreationTool_desc=Create an Abstraction
+ManifestationCreationTool_title=Manifestation
+ManifestationCreationTool_desc=Create a Manifestation
+GeneralizationCreationTool_title=Generalization
+GeneralizationCreationTool_desc=Create a Generalization link
+UsageCreationTool_title=Usage
+UsageCreationTool_desc=Create an Usage
+SubstitutionCreationTool_title=Substitution
+SubstitutionCreationTool_desc=Create a Substitution
+InterfaceRealizationCreationTool_title=Interface Realization
+InterfaceRealizationCreationTool_desc=Create an Interface Realization
+ComponentRealizationCreationTool_title=Component Realization
+ComponentRealizationCreationTool_desc=Create a Component Realization
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/model/ComponentDiagram.gmfgen b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/model/ComponentDiagram.gmfgen
index 6359c090b30..c1d0449c859 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/model/ComponentDiagram.gmfgen
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/model/ComponentDiagram.gmfgen
@@ -2448,6 +2448,9 @@
reorientCommandClassName="InterfacePortLinkReorientCommand">
<diagramRunTimeClass
href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:NotationType"
+ displayName="InterfacePortLink"/>
<viewmap
xsi:type="gmfgen:FigureViewmap"
figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.properties b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.properties
index 0f1355950f4..27f5beedebc 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.properties
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.properties
@@ -57,3 +57,5 @@ metatype.name.Operation_5=Operation
metatype.name.Reception_6=Reception
metatype.name.Interface_3078=Interface
metatype.name.NamedElement_3072=Interface
+metatype.name.Link_4018=InterfacePortLink
+ \ No newline at end of file
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.xml
index 708307b6203..40e5768ea23 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.xml
@@ -300,7 +300,7 @@
<Priority name="Lowest"/>
<context viewClass="org.eclipse.gmf.runtime.notation.Diagram" semanticHints="PapyrusUMLComponentDiagram"/>
<context viewClass="org.eclipse.gmf.runtime.notation.Node" semanticHints="3203,2002,3202,3200,3205,3201,3199,3204,2003,3069,3077,3076,3078,3070,3071,3074,3075,1,5,6,3072"/>
- <context viewClass="org.eclipse.gmf.runtime.notation.Edge" semanticHints="4001,4006,4003,4012,4014,4007,4013,4016,4015,4009,4010,4017"/>
+ <context viewClass="org.eclipse.gmf.runtime.notation.Edge" semanticHints="4001,4006,4003,4012,4014,4007,4013,4016,4015,4009,4010,4017,4018"/>
</viewProvider>
</extension>
@@ -315,7 +315,7 @@
<method name="getType()" value="3203,2002,3202,3200,3205,3201,3199,3204,2003,3069,3077,3076,3078,3070,3071,3074,3075,1,5,6,3072"/>
</object>
<object class="org.eclipse.gmf.runtime.notation.Edge" id="generated-links">
- <method name="getType()" value="4001,4006,4003,4012,4014,4007,4013,4016,4015,4009,4010,4017"/>
+ <method name="getType()" value="4001,4006,4003,4012,4014,4007,4013,4016,4015,4009,4010,4017,4018"/>
</object>
<object class="org.eclipse.gmf.runtime.notation.Node" id="generated-labels">
<method name="getType()" value="5008,5004,5262,5254,5266,5255,5252,5253,5265,5005,5006,5007,5264,5261,5267,5256,5257,5258,5259,5260,0"/>
@@ -696,6 +696,13 @@
<param name="semanticHint" value="4017"/>
</specializationType>
</metamodel>
+ <specializationType
+ id="org.eclipse.papyrus.uml.diagram.component.Link_4018"
+ name="%metatype.name.Link_4018"
+ kind="org.eclipse.gmf.runtime.diagram.ui.util.INotationType">
+ <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
+ <param name="semanticHint" value="4018"/>
+ </specializationType>
</extension>
<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings" id="element-types-bindings">
@@ -745,6 +752,7 @@
<elementType ref="org.eclipse.papyrus.uml.diagram.component.ConstraintConstrainedElement_4009"/>
<elementType ref="org.eclipse.papyrus.uml.diagram.component.Dependency_4010"/>
<elementType ref="org.eclipse.papyrus.uml.diagram.component.Dependency_4017"/>
+ <elementType ref="org.eclipse.papyrus.uml.diagram.component.Link_4018"/>
<advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
</binding>
</extension>
@@ -1283,6 +1291,14 @@
<?gmfgen generated="true"?>
<page category="org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams.PapyrusUMLComponentDiagram"
+ class="org.eclipse.papyrus.uml.diagram.component.preferences.InterfacePortLinkPreferencePage"
+ id="org.eclipse.papyrus.uml.diagram.component.preferences.InterfacePortLinkPreferencePage"
+ name="InterfacePortLink Link" />
+
+
+
+ <?gmfgen generated="true"?>
+ <page category="org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams.PapyrusUMLComponentDiagram"
class="org.eclipse.papyrus.uml.diagram.component.preferences.ManifestationPreferencePage"
id="org.eclipse.papyrus.uml.diagram.component.preferences.ManifestationPreferencePage"
name="Manifestation Link" />
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPart.java
index 8ee39ca964f..e6345e3982f 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPart.java
@@ -46,7 +46,6 @@ import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.papyrus.infra.gmfdiag.common.editpart.IPapyrusEditPart;
import org.eclipse.papyrus.infra.gmfdiag.preferences.utils.GradientPreferenceConverter;
import org.eclipse.papyrus.infra.gmfdiag.preferences.utils.PreferenceConstantHelper;
-import org.eclipse.papyrus.uml.diagram.common.editparts.CompositeEditPart;
import org.eclipse.papyrus.uml.diagram.common.editparts.NamedElementEditPart;
import org.eclipse.papyrus.uml.diagram.common.editpolicies.AffixedNodeAlignmentEditPolicy;
import org.eclipse.papyrus.uml.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy;
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPartCN.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPartCN.java
index 8125ee2e449..438f43aea89 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPartCN.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPartCN.java
@@ -45,7 +45,6 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.papyrus.infra.gmfdiag.preferences.utils.GradientPreferenceConverter;
import org.eclipse.papyrus.infra.gmfdiag.preferences.utils.PreferenceConstantHelper;
-import org.eclipse.papyrus.uml.diagram.common.editparts.CompositeEditPart;
import org.eclipse.papyrus.uml.diagram.common.editparts.NamedElementEditPart;
import org.eclipse.papyrus.uml.diagram.common.editpolicies.AffixedNodeAlignmentEditPolicy;
import org.eclipse.papyrus.uml.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy;
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPartPCN.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPartPCN.java
index fced1e7384b..d6e078b047f 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPartPCN.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/ComponentEditPartPCN.java
@@ -45,7 +45,6 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.papyrus.infra.gmfdiag.preferences.utils.GradientPreferenceConverter;
import org.eclipse.papyrus.infra.gmfdiag.preferences.utils.PreferenceConstantHelper;
-import org.eclipse.papyrus.uml.diagram.common.editparts.CompositeEditPart;
import org.eclipse.papyrus.uml.diagram.common.editparts.NamedElementEditPart;
import org.eclipse.papyrus.uml.diagram.common.editpolicies.AffixedNodeAlignmentEditPolicy;
import org.eclipse.papyrus.uml.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy;
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/InterfacePortLinkEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/InterfacePortLinkEditPart.java
new file mode 100644
index 00000000000..9ebbbae9b4b
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/InterfacePortLinkEditPart.java
@@ -0,0 +1,56 @@
+package org.eclipse.papyrus.uml.diagram.component.edit.parts;
+
+import org.eclipse.draw2d.Connection;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ViewComponentEditPolicy;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.editpart.ConnectionEditPart;
+
+/**
+ * @generated
+ */
+public class InterfacePortLinkEditPart extends ConnectionEditPart implements ITreeBranchEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 4018;
+
+ /**
+ * @generated
+ */
+ public InterfacePortLinkEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.COMPONENT_ROLE, new ViewComponentEditPolicy());
+ removeEditPolicy(EditPolicyRoles.SEMANTIC_ROLE);
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected Connection createConnectionFigure() {
+ return new PolylineConnectionEx();
+ }
+
+ /**
+ * @generated
+ */
+ public PolylineConnectionEx getPrimaryShape() {
+ return (PolylineConnectionEx)getFigure();
+ }
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/UMLEditPartFactory.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/UMLEditPartFactory.java
index 9afd70b4694..c3342f3b831 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/UMLEditPartFactory.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/parts/UMLEditPartFactory.java
@@ -192,6 +192,8 @@ public class UMLEditPartFactory implements EditPartFactory {
return new DependencyAppliedStereotypeEditPart(view);
case DependencyBranchEditPart.VISUAL_ID:
return new DependencyBranchEditPart(view);
+ case InterfacePortLinkEditPart.VISUAL_ID:
+ return new InterfacePortLinkEditPart(view);
}
}
return createUnrecognizedEditPart(context, model);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/policies/ModelCanonicalEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/policies/ModelCanonicalEditPolicy.java
index 5123ef3e69a..a1bc003d38d 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/policies/ModelCanonicalEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/policies/ModelCanonicalEditPolicy.java
@@ -68,6 +68,7 @@ import org.eclipse.papyrus.uml.diagram.component.edit.parts.DependencyNodeEditPa
import org.eclipse.papyrus.uml.diagram.component.edit.parts.GeneralizationEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceEditPartPCN;
+import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfacePortLinkEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceRealizationEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.LinkDescriptorEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.ManifestationEditPart;
@@ -306,7 +307,7 @@ public class ModelCanonicalEditPolicy extends CanonicalEditPolicy {
for(Iterator linksIterator = existingLinks.iterator(); linksIterator.hasNext();) {
Edge nextDiagramLink = (Edge)linksIterator.next();
int diagramLinkVisualID = UMLVisualIDRegistry.getVisualID(nextDiagramLink);
- if(diagramLinkVisualID == -1 || diagramLinkVisualID == LinkDescriptorEditPart.VISUAL_ID) {
+ if(diagramLinkVisualID == -1 || diagramLinkVisualID == LinkDescriptorEditPart.VISUAL_ID || diagramLinkVisualID == InterfacePortLinkEditPart.VISUAL_ID) {
if(nextDiagramLink.getSource() != null && nextDiagramLink.getTarget() != null) {
linksIterator.remove();
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/policies/UMLBaseItemSemanticEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/policies/UMLBaseItemSemanticEditPolicy.java
index 287def7bbb9..b9c150d1168 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/policies/UMLBaseItemSemanticEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/edit/policies/UMLBaseItemSemanticEditPolicy.java
@@ -710,6 +710,13 @@ public class UMLBaseItemSemanticEditPolicy extends SemanticEditPolicy {
}
/**
+ * @generated
+ */
+ public boolean canCreateLink_4018() {
+ return canExistLink_4018();
+ }
+
+ /**
* Can exist usage_4001.
*
* @param container
@@ -943,5 +950,12 @@ public class UMLBaseItemSemanticEditPolicy extends SemanticEditPolicy {
public boolean canExistDependency_4017(Package container, Dependency linkInstance, NamedElement source, NamedElement target) {
return true;
}
+
+ /**
+ * @generated
+ */
+ public boolean canExistLink_4018() {
+ return true;
+ }
}
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/part/Messages.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/part/Messages.java
index 3f3e56f5413..54a67f39fd3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/part/Messages.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/part/Messages.java
@@ -255,222 +255,222 @@ public class Messages extends NLS {
/**
* @generated
*/
- public static String createNodesGroup_title;
+ public static String NodesGroup_title;
/**
* @generated
*/
- public static String createNodesGroup_desc;
+ public static String NodesGroup_desc;
/**
* @generated
*/
- public static String createLinksGroup_title;
+ public static String LinksGroup_title;
/**
* @generated
*/
- public static String createLinksGroup_desc;
+ public static String LinksGroup_desc;
/**
* @generated
*/
- public static String createModelCreationTool_title;
+ public static String ConstraintCreationTool_title;
/**
* @generated
*/
- public static String createModelCreationTool_desc;
+ public static String ConstraintCreationTool_desc;
/**
* @generated
*/
- public static String createPackageCreationTool_title;
+ public static String CommentCreationTool_title;
/**
* @generated
*/
- public static String createPackageCreationTool_desc;
+ public static String CommentCreationTool_desc;
/**
* @generated
*/
- public static String createComponentCreationTool_title;
+ public static String ComponentCreationTool_title;
/**
* @generated
*/
- public static String createComponentCreationTool_desc;
+ public static String ComponentCreationTool_desc;
/**
* @generated
*/
- public static String createRectancleInterfaceCreationTool_title;
+ public static String RectancleInterfaceCreationTool_title;
/**
* @generated
*/
- public static String createRectancleInterfaceCreationTool_desc;
+ public static String RectancleInterfaceCreationTool_desc;
/**
* @generated
*/
- public static String createPropertyCreationTool_title;
+ public static String ModelCreationTool_title;
/**
* @generated
*/
- public static String createPropertyCreationTool_desc;
+ public static String ModelCreationTool_desc;
/**
* @generated
*/
- public static String createOperationCreationTool_title;
+ public static String PropertyCreationTool_title;
/**
* @generated
*/
- public static String createOperationCreationTool_desc;
+ public static String PropertyCreationTool_desc;
/**
* @generated
*/
- public static String createPortCreationTool_title;
+ public static String OperationCreationTool_title;
/**
* @generated
*/
- public static String createPortCreationTool_desc;
+ public static String OperationCreationTool_desc;
/**
* @generated
*/
- public static String createReceptionCreationTool_title;
+ public static String PackageCreationTool_title;
/**
* @generated
*/
- public static String createReceptionCreationTool_desc;
+ public static String PackageCreationTool_desc;
/**
* @generated
*/
- public static String createCommentCreationTool_title;
+ public static String PortCreationTool_title;
/**
* @generated
*/
- public static String createCommentCreationTool_desc;
+ public static String PortCreationTool_desc;
/**
* @generated
*/
- public static String createConstraintCreationTool_title;
+ public static String ReceptionCreationTool_title;
/**
* @generated
*/
- public static String createConstraintCreationTool_desc;
+ public static String ReceptionCreationTool_desc;
/**
* @generated
*/
- public static String createLinkCreationTool_title;
+ public static String LinkCreationTool_title;
/**
* @generated
*/
- public static String createLinkCreationTool_desc;
+ public static String LinkCreationTool_desc;
/**
* @generated
*/
- public static String createDependencyCreationTool_title;
+ public static String DependencyCreationTool_title;
/**
* @generated
*/
- public static String createDependencyCreationTool_desc;
+ public static String DependencyCreationTool_desc;
/**
* @generated
*/
- public static String createDependencyBranchCreationTool_title;
+ public static String DependencyBranchCreationTool_title;
/**
* @generated
*/
- public static String createDependencyBranchCreationTool_desc;
+ public static String DependencyBranchCreationTool_desc;
/**
* @generated
*/
- public static String createAbstractionCreationTool_title;
+ public static String AbstractionCreationTool_title;
/**
* @generated
*/
- public static String createAbstractionCreationTool_desc;
+ public static String AbstractionCreationTool_desc;
/**
* @generated
*/
- public static String createManifestationCreationTool_title;
+ public static String ManifestationCreationTool_title;
/**
* @generated
*/
- public static String createManifestationCreationTool_desc;
+ public static String ManifestationCreationTool_desc;
/**
* @generated
*/
- public static String createGeneralizationCreationTool_title;
+ public static String GeneralizationCreationTool_title;
/**
* @generated
*/
- public static String createGeneralizationCreationTool_desc;
+ public static String GeneralizationCreationTool_desc;
/**
* @generated
*/
- public static String createUsageCreationTool_title;
+ public static String UsageCreationTool_title;
/**
* @generated
*/
- public static String createUsageCreationTool_desc;
+ public static String UsageCreationTool_desc;
/**
* @generated
*/
- public static String createSubstitutionCreationTool_title;
+ public static String SubstitutionCreationTool_title;
/**
* @generated
*/
- public static String createSubstitutionCreationTool_desc;
+ public static String SubstitutionCreationTool_desc;
/**
* @generated
*/
- public static String createInterfaceRealizationCreationTool_title;
+ public static String InterfaceRealizationCreationTool_title;
/**
* @generated
*/
- public static String createInterfaceRealizationCreationTool_desc;
+ public static String InterfaceRealizationCreationTool_desc;
/**
* @generated
*/
- public static String createComponentRealizationCreationTool_title;
+ public static String ComponentRealizationCreationTool_title;
/**
* @generated
*/
- public static String createComponentRealizationCreationTool_desc;
+ public static String ComponentRealizationCreationTool_desc;
/**
* @generated
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/preferences/DiagramPreferenceInitializer.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/preferences/DiagramPreferenceInitializer.java
index 064fee255f8..954b7195f7c 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/preferences/DiagramPreferenceInitializer.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/preferences/DiagramPreferenceInitializer.java
@@ -46,6 +46,7 @@ public class DiagramPreferenceInitializer extends AbstractPreferenceInitializer
DefaultNamedElementPreferencePage.initDefaults(store);
ConstraintConstrainedElementPreferencePage.initDefaults(store);
AbstractionPreferencePage.initDefaults(store);
+ InterfacePortLinkPreferencePage.initDefaults(store);
ManifestationPreferencePage.initDefaults(store);
GeneralizationPreferencePage.initDefaults(store);
DependencyPreferencePage.initDefaults(store);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/preferences/InterfacePortLinkPreferencePage.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/preferences/InterfacePortLinkPreferencePage.java
new file mode 100644
index 00000000000..41562b70b88
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/preferences/InterfacePortLinkPreferencePage.java
@@ -0,0 +1,34 @@
+package org.eclipse.papyrus.uml.diagram.component.preferences;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.gmfdiag.preferences.pages.AbstractPapyrusLinkPreferencePage;
+import org.eclipse.papyrus.uml.diagram.component.edit.parts.ComponentDiagramEditPart;
+import org.eclipse.papyrus.uml.diagram.component.part.UMLDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class InterfacePortLinkPreferencePage extends AbstractPapyrusLinkPreferencePage {
+
+ /**
+ * @generated
+ */
+ public InterfacePortLinkPreferencePage() {
+ super();
+ setPreferenceKey(ComponentDiagramEditPart.MODEL_ID + "_InterfacePortLink");
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected String getBundleId() {
+ return UMLDiagramEditorPlugin.ID;
+ }
+
+ /**
+ * @generated
+ */
+ public static void initDefaults(IPreferenceStore store) {
+ }
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLElementTypes.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLElementTypes.java
index 4ca9f0fb5c6..4411974f907 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLElementTypes.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLElementTypes.java
@@ -43,6 +43,7 @@ import org.eclipse.papyrus.uml.diagram.component.edit.parts.DependencyNodeEditPa
import org.eclipse.papyrus.uml.diagram.component.edit.parts.GeneralizationEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceEditPartPCN;
+import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfacePortLinkEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceRealizationEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.LinkDescriptorEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.ManifestationEditPart;
@@ -261,6 +262,11 @@ public class UMLElementTypes {
/**
* @generated
*/
+ public static final IElementType Link_4018 = getElementType("org.eclipse.papyrus.uml.diagram.component.Link_4018"); //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
public static ImageDescriptor getImageDescriptor(ENamedElement element) {
return elementTypeImages.getImageDescriptor(element);
}
@@ -379,6 +385,7 @@ public class UMLElementTypes {
KNOWN_ELEMENT_TYPES.add(ConstraintConstrainedElement_4009);
KNOWN_ELEMENT_TYPES.add(Dependency_4010);
KNOWN_ELEMENT_TYPES.add(Dependency_4017);
+ KNOWN_ELEMENT_TYPES.add(Link_4018);
}
return KNOWN_ELEMENT_TYPES.contains(elementType);
}
@@ -456,6 +463,8 @@ public class UMLElementTypes {
return Dependency_4010;
case DependencyBranchEditPart.VISUAL_ID:
return Dependency_4017;
+ case InterfacePortLinkEditPart.VISUAL_ID:
+ return Link_4018;
}
return null;
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLViewProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLViewProvider.java
index 37139297ea1..de54c82ff97 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLViewProvider.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLViewProvider.java
@@ -101,6 +101,7 @@ import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceNameEditPar
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceNameEditPartPCN;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceOperationCompartmentEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceOperationCompartmentEditPartCN;
+import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfacePortLinkEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.InterfaceRealizationEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.LinkDescriptorEditPart;
import org.eclipse.papyrus.uml.diagram.component.edit.parts.ManifestationAppliedStereotypeEditPart;
@@ -412,6 +413,8 @@ public class UMLViewProvider extends AbstractProvider implements IViewProvider {
return createDependency_4010(getSemanticElement(semanticAdapter), containerView, index, persisted, preferencesHint);
case DependencyBranchEditPart.VISUAL_ID:
return createDependency_4017(getSemanticElement(semanticAdapter), containerView, index, persisted, preferencesHint);
+ case InterfacePortLinkEditPart.VISUAL_ID:
+ return createLink_4018(containerView, index, persisted, preferencesHint);
}
// can never happen, provided #provides(CreateEdgeViewOperation) is correct
return null;
@@ -1226,6 +1229,33 @@ public class UMLViewProvider extends AbstractProvider implements IViewProvider {
/**
* @generated
*/
+ public Edge createLink_4018(View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
+ Connector edge = NotationFactory.eINSTANCE.createConnector();
+ edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints();
+ ArrayList<RelativeBendpoint> points = new ArrayList<RelativeBendpoint>(2);
+ points.add(new RelativeBendpoint());
+ points.add(new RelativeBendpoint());
+ bendpoints.setPoints(points);
+ edge.setBendpoints(bendpoints);
+ ViewUtil.insertChildView(containerView, edge, index, persisted);
+ edge.setType(UMLVisualIDRegistry.getType(InterfacePortLinkEditPart.VISUAL_ID));
+ edge.setElement(null);
+ // initializePreferences
+ final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
+ PreferenceInitializerForElementHelper.initForegroundFromPrefs(edge, prefStore, "InterfacePortLink");
+ PreferenceInitializerForElementHelper.initFontStyleFromPrefs(edge, prefStore, "InterfacePortLink");
+ //org.eclipse.gmf.runtime.notation.Routing routing = org.eclipse.gmf.runtime.notation.Routing.get(prefStore.getInt(org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants.PREF_LINE_STYLE));
+ //if (routing != null) {
+ // org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.setStructuralFeatureValue(edge, org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);
+ //}
+ PreferenceInitializerForElementHelper.initRountingFromPrefs(edge, prefStore, "InterfacePortLink");
+ return edge;
+ }
+
+ /**
+ * @generated
+ */
protected void stampShortcut(View containerView, Node target) {
if(!ComponentDiagramEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) {
EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation();

Back to the top