Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 214914 Details for
Bug 377501
[Sequence Diagram] Connections upon Messages creation
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Bugfix
Bug 377501 conenction in interation.patch (text/plain), 7.18 KB, created by
Yves YANG
on 2012-05-02 07:47:42 EDT
(
hide
)
Description:
Bugfix
Filename:
MIME Type:
Creator:
Yves YANG
Created:
2012-05-02 07:47:42 EDT
Size:
7.18 KB
patch
obsolete
>Index: custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/policies/SequenceGraphicalNodeEditPolicy.java >=================================================================== >--- custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/policies/SequenceGraphicalNodeEditPolicy.java (revision 7966) >+++ custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/policies/SequenceGraphicalNodeEditPolicy.java (working copy) >@@ -20,6 +20,7 @@ > import java.util.Map.Entry; > > import org.eclipse.draw2d.Connection; >+import org.eclipse.draw2d.IFigure; > import org.eclipse.draw2d.Polyline; > import org.eclipse.draw2d.geometry.Point; > import org.eclipse.draw2d.geometry.Rectangle; >@@ -46,6 +47,7 @@ > import org.eclipse.gmf.runtime.notation.Shape; > import org.eclipse.jface.viewers.ILabelProvider; > import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.CombinedFragment2EditPart; >+import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.InteractionEditPart; > import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.LifelineEditPart; > import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.Message2EditPart; > import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.Message3EditPart; >@@ -437,6 +439,30 @@ > } > } > >- >+ public EditPart getTargetEditPart(Request request) { >+ if (REQ_CONNECTION_START.equals(request.getType()) >+ || REQ_CONNECTION_END.equals(request.getType()) >+ || REQ_RECONNECT_SOURCE.equals(request.getType()) >+ || REQ_RECONNECT_TARGET.equals(request.getType())){ >+ >+ EditPart host = getHost(); >+ if((host instanceof InteractionEditPart) && (request instanceof CreateConnectionRequest) ){ >+ InteractionEditPart interactionPart = (InteractionEditPart)host; >+ CreateConnectionRequest req = (CreateConnectionRequest)request; >+ IFigure figure = interactionPart.getFigure(); >+ Point location = req.getLocation().getCopy(); >+ figure.translateToRelative(location); >+ >+ // if mouse location is far from border, do not handle connection event >+ Rectangle innerRetangle = figure.getBounds().getCopy().shrink(20, 20); >+ if(innerRetangle.contains(location)){ >+ return null; >+ } >+ } >+ >+ return host; >+ } >+ return null; >+ } > > } >Index: src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/InteractionEditPart.java >=================================================================== >--- src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/InteractionEditPart.java (revision 7966) >+++ src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/InteractionEditPart.java (working copy) >@@ -24,6 +24,8 @@ > import org.eclipse.draw2d.XYAnchor; > import org.eclipse.draw2d.geometry.Dimension; > import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.draw2d.geometry.PointList; >+import org.eclipse.draw2d.geometry.PrecisionPoint; > import org.eclipse.draw2d.geometry.Rectangle; > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.Notifier; >@@ -263,6 +265,40 @@ > } > return getContentPane(); > } >+ >+ static class SlidableAnchorEx extends SlidableAnchor{ >+ SlidableAnchorEx(IFigure f, PrecisionPoint p) { >+ super(f,p); >+ } >+ >+ protected Point getLocation(Point ownReference, Point foreignReference) { >+ PointList intersections = getIntersectionPoints(ownReference, foreignReference); >+ if (intersections!=null && intersections.size()!=0) { >+ int size = intersections.size(); >+ double dist = foreignReference.getDistance(ownReference); >+ for(int i = 0; i < size; i ++){ >+ Point loc = intersections.getPoint(i); >+ if(isInOrder(foreignReference,ownReference,dist, loc)){ >+ return loc; >+ } >+ } >+ return intersections.getFirstPoint(); >+ } >+ return null; >+ } >+ >+ private boolean isInOrder(Point start, Point end, double dist, Point loc) { >+ double total = loc.getDistance(start); >+ double dist2 = loc.getDistance(end); >+ if(total < dist || total < dist2) >+ return false; >+ >+ if(Math.abs(total - dist - dist2) < 0.01) >+ return true; >+ >+ return false; >+ } >+ } > > /** > * @generated >@@ -272,7 +308,16 @@ > IPreferenceStore store = UMLDiagramEditorPlugin.getInstance().getPreferenceStore(); > String preferenceConstantWitdh = PreferenceInitializerForElementHelper.getpreferenceKey(getNotationView(), prefElementId, PreferenceConstantHelper.WIDTH); > String preferenceConstantHeight = PreferenceInitializerForElementHelper.getpreferenceKey(getNotationView(), prefElementId, PreferenceConstantHelper.HEIGHT); >- DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(store.getInt(preferenceConstantWitdh), store.getInt(preferenceConstantHeight)); >+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(store.getInt(preferenceConstantWitdh), store.getInt(preferenceConstantHeight)){ >+ >+ protected ConnectionAnchor createAnchor(PrecisionPoint p) { >+ if (p==null) >+ // If the old terminal for the connection anchor cannot be resolved (by SlidableAnchor) a null >+ // PrecisionPoint will passed in - this is handled here >+ return createDefaultAnchor(); >+ return new SlidableAnchorEx(this, p); >+ } >+ }; > > return result; > } >@@ -1263,7 +1308,7 @@ > // return targetAnchor; > return super.getTargetConnectionAnchor(request); > } >- >+ > /** > * Handle lost message > */ >@@ -1273,8 +1318,7 @@ > Point referencePoint = targetConnectionAnchor.getReferencePoint(); > if(connEditPart instanceof Message6EditPart && referencePoint.x != 0 && referencePoint.y != 0) { > targetConnectionAnchor = new XYAnchor(referencePoint); >- } >- >+ } > return targetConnectionAnchor; > } > >Index: src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/PackageEditPart.java >=================================================================== >--- src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/PackageEditPart.java (revision 7966) >+++ src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/PackageEditPart.java (working copy) >@@ -23,9 +23,12 @@ > import org.eclipse.gef.GraphicalEditPart; > import org.eclipse.gef.Request; > import org.eclipse.gef.commands.Command; >+import org.eclipse.gef.commands.UnexecutableCommand; > import org.eclipse.gef.editpolicies.NonResizableEditPolicy; > import org.eclipse.gef.handles.MoveHandle; >+import org.eclipse.gef.requests.CreateConnectionRequest; > import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ContainerNodeEditPolicy; > import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; > import org.eclipse.gmf.runtime.diagram.ui.editpolicies.NonResizableLabelEditPolicy; > import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy; >@@ -82,6 +85,17 @@ > > //fix https://bugs.eclipse.org/bugs/show_bug.cgi?id=364688 > installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >+ >+ // do not handle connection event >+ installEditPolicy( >+ EditPolicy.GRAPHICAL_NODE_ROLE, >+ new ContainerNodeEditPolicy(){ >+ >+ protected Command getConnectionAndEndCommands( >+ CreateConnectionRequest request) { >+ return UnexecutableCommand.INSTANCE; >+ } >+ }); > } > > private EditPolicy createLayoutEditPolicy() {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 377501
: 214914 |
220884
|
224162
|
224421
|
224672
|
224673