Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/OLDGateEditPart.java')
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/OLDGateEditPart.java430
1 files changed, 4 insertions, 426 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/OLDGateEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/OLDGateEditPart.java
index 58158023209..1a5437171b0 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/OLDGateEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/OLDGateEditPart.java
@@ -13,442 +13,20 @@
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.sequence.edit.parts;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.ConnectionAnchor;
-import org.eclipse.draw2d.LineBorder;
import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PrecisionPoint;
-import org.eclipse.draw2d.geometry.PrecisionRectangle;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.LayoutEditPolicy;
-import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
-import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
-import org.eclipse.gmf.runtime.gef.ui.figures.SlidableAnchor;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.infra.gmfdiag.common.figure.node.IPapyrusNodeFigure;
-import org.eclipse.papyrus.uml.diagram.common.editparts.AbstractBorderEditPart;
-import org.eclipse.papyrus.uml.diagram.common.figure.node.RoundedCompartmentFigure;
-import org.eclipse.papyrus.uml.diagram.common.helper.NotificationHelper;
-import org.eclipse.papyrus.uml.diagram.common.locator.ExternalLabelPositionLocator;
-import org.eclipse.papyrus.uml.diagram.common.providers.UIAdapterImpl;
-import org.eclipse.papyrus.uml.diagram.sequence.command.SetLocationCommand;
-import org.eclipse.papyrus.uml.diagram.sequence.edit.policies.ExternalLabelPrimaryDragRoleEditPolicy;
-import org.eclipse.papyrus.uml.diagram.sequence.edit.policies.OLDGateGraphicalNodeEditPolicy;
-import org.eclipse.papyrus.uml.diagram.sequence.util.GateHelper;
-import org.eclipse.papyrus.uml.diagram.sequence.util.GateModelElementFactory;
-import org.eclipse.uml2.uml.CombinedFragment;
-import org.eclipse.uml2.uml.Gate;
-import org.eclipse.uml2.uml.Interaction;
-import org.eclipse.uml2.uml.Message;
-import org.eclipse.uml2.uml.UMLPackage;
/**
* @author Jin Liu (jin.liu@soyatec.com)
*/
-public class OLDGateEditPart extends AbstractBorderEditPart implements IBorderItemEditPart {
+public class OLDGateEditPart {
public static final String GATE_TYPE = "Gate";
public static final Dimension DEFAULT_SIZE = new Dimension(16, 16);
- protected GateFigure primaryShape;
-
- private NotificationHelper notifier = new NotificationHelper(new UIAdapterImpl() {
-
- @Override
- protected void safeNotifyChanged(Notification msg) {
- handleNotificationEvent(msg);
- }
- });
-
- /**
- * Constructor.
- *
- * @param view
- */
- public OLDGateEditPart(View view) {
- super(view);
- }
-
- /**
- * @see org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart#activate()
- *
- */
- @Override
- public void activate() {
- super.activate();
- hookExternalGates();
- }
-
- /**
- * Hook external gates such as ActualGate of InteractionUse for a FormalGate of Interaction, outer gate of CombinedFragment for a inner gate of
- * CombinedFragment.
- */
- protected void hookExternalGates() {
- EObject resolveSemanticElement = resolveSemanticElement();
- if (!(resolveSemanticElement instanceof Gate)) {
- return;
- }
- Gate gate = (Gate) resolveSemanticElement;
- if (gate.eContainer() instanceof CombinedFragment) {
- if (!GateHelper.isInnerCFGate(gate)) {
- Message message = gate.getMessage();
- if (message != null) {
- notifier.listenObject(message);
- }
- } else {
- // For CombinedFragment
- Gate outerGate = GateHelper.getOuterCFGate(gate);
- if (outerGate != null) {
- notifier.listenObject(outerGate);
- Message message = outerGate.getMessage();
- if (message != null) {
- notifier.listenObject(message);
- }
- }
- }
- } else if (gate.eContainer() instanceof Interaction) {
- // For gate on interaction
- Gate actualGate = GateHelper.getActualGate(gate);
- if (actualGate != null) {
- notifier.listenObject(actualGate);
- Message message = actualGate.getMessage();
- if (message != null) {
- notifier.listenObject(message);
- }
- }
- }
- }
-
- @Override
- public void deactivate() {
- if (notifier != null) {
- notifier.unlistenAll();
- }
- super.deactivate();
- }
-
- /**
- * @see org.eclipse.papyrus.uml.diagram.common.editparts.BorderUMLNodeEditPart#createDefaultEditPolicies()
- *
- */
- @Override
- protected void createDefaultEditPolicies() {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy());
- installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
- installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new OLDGateGraphicalNodeEditPolicy());
- }
-
- @Override
- public EditPolicy getPrimaryDragEditPolicy() {
- return new BorderItemSelectionEditPolicy() {
-
- @Override
- protected Command getMoveCommand(ChangeBoundsRequest request) {
- IBorderItemEditPart borderItemEP = (IBorderItemEditPart) getHost();
- IBorderItemLocator borderItemLocator = borderItemEP.getBorderItemLocator();
- if (borderItemLocator != null) {
- PrecisionRectangle rect = new PrecisionRectangle(getInitialFeedbackBounds().getCopy());
- getHostFigure().translateToAbsolute(rect);
- rect.translate(request.getMoveDelta());
- rect.resize(request.getSizeDelta());
- getHostFigure().translateToRelative(rect);
- Rectangle realLocation = borderItemLocator.getValidLocation(rect.getCopy(), borderItemEP.getFigure());
- Point location = realLocation.getLocation();
- ICommand moveCommand = new SetLocationCommand(borderItemEP.getEditingDomain(), DiagramUIMessages.Commands_MoveElement, new EObjectAdapter((View) getHost().getModel()), location);
- return new ICommandProxy(moveCommand);
- }
- return null;
- }
- };
- }
-
- protected LayoutEditPolicy createLayoutEditPolicy() {
- org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
-
- @Override
- protected EditPolicy createChildEditPolicy(EditPart child) {
- if (child instanceof OLDGateNameEditPart) {
- return new ExternalLabelPrimaryDragRoleEditPolicy();
- }
- EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (result == null) {
- result = new NonResizableEditPolicy();
- }
- return result;
- }
-
- @Override
- protected Command getMoveChildrenCommand(Request request) {
- return null;
- }
-
- @Override
- protected Command getCreateCommand(CreateRequest request) {
- return null;
- }
- };
- return lep;
- }
-
- /**
- * @see org.eclipse.papyrus.uml.diagram.common.editparts.BorderNodeEditPart#createMainFigure()
- *
- * @return
- */
- @Override
- protected NodeFigure createMainFigure() {
- return primaryShape = new GateFigure();
- }
-
- /**
- * @see org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart#addChildVisual(org.eclipse.gef.EditPart, int)
- *
- * @param childEditPart
- * @param index
- */
- @Override
- protected void addChildVisual(EditPart childEditPart, int index) {
- if (childEditPart instanceof OLDGateNameEditPart) {
- // BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.SOUTH);
- // locator.setBorderItemOffset(new Dimension(-20, 0));
- ExternalLabelPositionLocator locator = new ExternalLabelPositionLocator(getMainFigure());
- getContentPaneFor((OLDGateNameEditPart) childEditPart).add(((OLDGateNameEditPart) childEditPart).getFigure(), locator);
- return;
- }
- super.addChildVisual(childEditPart, index);
- }
-
- /**
- * @see org.eclipse.papyrus.uml.diagram.common.editparts.BorderNodeEditPart#getPrimaryShape()
- *
- * @return
- */
- @Override
- public IPapyrusNodeFigure getPrimaryShape() {
- return primaryShape;
- }
-
- /**
- * @see org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart#removeChildVisual(org.eclipse.gef.EditPart)
- *
- * @param child
- */
- @Override
- protected void removeChildVisual(EditPart child) {
- if (child instanceof OLDGateNameEditPart) {
- getContentPaneFor((OLDGateNameEditPart) child).remove(((OLDGateNameEditPart) child).getFigure());
- return;
- }
- super.removeChildVisual(child);
- }
-
- /**
- * @see org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart#refreshBounds()
- *
- */
- @Override
- protected void refreshBounds() {
- if (getBorderItemLocator() != null) {
- int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_X())).intValue();
- int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_Y())).intValue();
- Point loc = new Point(x, y);
- getBorderItemLocator().setConstraint(new Rectangle(loc, DEFAULT_SIZE));
- OLDGateNameEditPart labelEditPart = getLabelEditPart();
- if (labelEditPart != null) {
- labelEditPart.refreshBounds();
- }
- }
- }
-
- /**
- * @see org.eclipse.papyrus.uml.diagram.common.editparts.AbstractBorderEditPart#handleNotificationEvent(org.eclipse.emf.common.notify.Notification)
- *
- * @param event
- */
- @Override
- protected void handleNotificationEvent(Notification event) {
- if (event.isTouch()) {
- return;
- }
- if (GateModelElementFactory.isShowNameChanged(event)) {
- // refresh name child.
- refreshChildren();
- return;
- }
- hookExternalGates();
- if (UMLPackage.eINSTANCE.getNamedElement_Name().equals(event.getFeature())) {
- // Update gate name when the name of message is changed.
- EObject element = resolveSemanticElement();
- if (element instanceof Gate && event.getNotifier() instanceof Message) {
- // Gate gate = (Gate)element;
- // String gateLabel = GateHelper.getGateLabel(gate);
- // if(gateLabel != null && !gateLabel.equals(gate.getName())) {
- // gate.setName(gateLabel);
- // Gate innerCFGate = GateHelper.getInnerCFGate(gate);
- // if(innerCFGate != null && !gateLabel.equals(innerCFGate.getName())) {
- // innerCFGate.setName(gateLabel);
- // }
- // }
- } else {
- refreshGateLabel();
- }
- } else if (UMLPackage.eINSTANCE.getMessageEnd_Message().equals(event.getFeature())) {
- notifier.unlistenObject((Notifier) event.getOldValue());
- notifier.listenObject((Notifier) event.getNewValue());
- refreshGateLabel();
- }
- super.handleNotificationEvent(event);
- }
-
- /**
- * @see org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart#getModelChildren()
- *
- * @return
- */
- @Override
- protected List getModelChildren() {
- if (GateModelElementFactory.isShowName(getPrimaryView())) {
- return super.getModelChildren();
- } else {
- // Hide name with property changes.
- List modelChildren = new ArrayList(super.getModelChildren());
- Iterator iterator = modelChildren.iterator();
- while (iterator.hasNext()) {
- View next = (View) iterator.next();
- if (OLDGateNameEditPart.GATE_NAME_TYPE.equals(next.getType())) {
- iterator.remove();
- break;
- }
- }
- return modelChildren;
- }
- }
-
- /**
- * Refresh the label of Gate.
- */
- protected void refreshGateLabel() {
- OLDGateNameEditPart labelEditPart = getLabelEditPart();
- if (labelEditPart != null) {
- labelEditPart.refreshLabel();
- }
- }
-
- /**
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#refreshSourceConnections()
- *
- */
- @Override
- protected void refreshSourceConnections() {
- super.refreshSourceConnections();
- OLDGateNameEditPart labelEditPart = getLabelEditPart();
- if (labelEditPart != null) {
- labelEditPart.refreshBounds();
- }
+ @Deprecated
+ private OLDGateEditPart() {
+ // Deprecated
}
- /**
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#refreshTargetConnections()
- *
- */
- @Override
- protected void refreshTargetConnections() {
- super.refreshTargetConnections();
- OLDGateNameEditPart labelEditPart = getLabelEditPart();
- if (labelEditPart != null) {
- labelEditPart.refreshBounds();
- }
- }
-
- /**
- * this method will return the primary child EditPart inside this edit part
- *
- * @return the primary child view inside this edit part
- */
- @Override
- public EditPart getPrimaryChildEditPart() {
- if (getChildren().size() > 0) {
- return (EditPart) getChildren().get(0);
- }
- return super.getPrimaryChildEditPart();
- }
-
- public OLDGateNameEditPart getLabelEditPart() {
- IGraphicalEditPart labelEditPart = getChildBySemanticHint(OLDGateNameEditPart.GATE_NAME_TYPE);
- if (labelEditPart instanceof OLDGateNameEditPart) {
- return (OLDGateNameEditPart) labelEditPart;
- }
- return null;
- }
-
- public class GateFigure extends RoundedCompartmentFigure {
-
- /**
- * Constructor.
- *
- */
- public GateFigure() {
- setBorder(new LineBorder(ColorConstants.black));
- setPreferredSize(DEFAULT_SIZE);
- }
-
- @Override
- protected ConnectionAnchor createDefaultAnchor() {
- return new SlidableAnchor(this) {
-
- @Override
- public Point getLocation(Point reference) {
- Point location = getLocation(new PrecisionPoint(getBox().getCenter()), reference);
- if (location == null) {
- location = getBox().getCenter();
- }
- return location;
- }
- };
- }
-
- @Override
- protected ConnectionAnchor createAnchor(PrecisionPoint p) {
- if (p == null) {
- return createDefaultAnchor();
- }
- return new SlidableAnchor(this, p) {
-
- @Override
- public Point getLocation(Point reference) {
- Rectangle box = getBox();
- Point location = getLocation(new PrecisionPoint(box.getCenter()), reference);
- if (location == null) {
- location = getBox().getCenter();
- }
- return location;
- }
- };
- }
- }
}

Back to the top