|
Lines 3-13
Link Here
|
| 3 |
import java.util.ArrayList; |
3 |
import java.util.ArrayList; |
| 4 |
import java.util.List; |
4 |
import java.util.List; |
| 5 |
|
5 |
|
|
|
6 |
import org.eclipse.draw2d.ConnectionAnchor; |
| 6 |
import org.eclipse.draw2d.IFigure; |
7 |
import org.eclipse.draw2d.IFigure; |
| 7 |
import org.eclipse.draw2d.Locator; |
8 |
import org.eclipse.draw2d.Locator; |
| 8 |
import org.eclipse.draw2d.PositionConstants; |
9 |
import org.eclipse.draw2d.PositionConstants; |
| 9 |
import org.eclipse.draw2d.RelativeLocator; |
10 |
import org.eclipse.draw2d.RelativeLocator; |
| 10 |
import org.eclipse.draw2d.Shape; |
|
|
| 11 |
import org.eclipse.draw2d.TreeSearch; |
11 |
import org.eclipse.draw2d.TreeSearch; |
| 12 |
import org.eclipse.draw2d.geometry.Dimension; |
12 |
import org.eclipse.draw2d.geometry.Dimension; |
| 13 |
import org.eclipse.draw2d.geometry.Point; |
13 |
import org.eclipse.draw2d.geometry.Point; |
|
Lines 16-21
Link Here
|
| 16 |
import org.eclipse.draw2d.geometry.Rectangle; |
16 |
import org.eclipse.draw2d.geometry.Rectangle; |
| 17 |
import org.eclipse.emf.common.notify.Notification; |
17 |
import org.eclipse.emf.common.notify.Notification; |
| 18 |
import org.eclipse.emf.ecore.EObject; |
18 |
import org.eclipse.emf.ecore.EObject; |
|
|
19 |
import org.eclipse.gef.ConnectionEditPart; |
| 19 |
import org.eclipse.gef.EditPart; |
20 |
import org.eclipse.gef.EditPart; |
| 20 |
import org.eclipse.gef.EditPolicy; |
21 |
import org.eclipse.gef.EditPolicy; |
| 21 |
import org.eclipse.gef.Request; |
22 |
import org.eclipse.gef.Request; |
|
Lines 23-30
Link Here
|
| 23 |
import org.eclipse.gef.commands.UnexecutableCommand; |
24 |
import org.eclipse.gef.commands.UnexecutableCommand; |
| 24 |
import org.eclipse.gef.handles.HandleBounds; |
25 |
import org.eclipse.gef.handles.HandleBounds; |
| 25 |
import org.eclipse.gef.requests.ChangeBoundsRequest; |
26 |
import org.eclipse.gef.requests.ChangeBoundsRequest; |
|
|
27 |
import org.eclipse.gef.requests.ReconnectRequest; |
| 26 |
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; |
28 |
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; |
| 27 |
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy; |
29 |
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy; |
|
|
30 |
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeConnectionRequest; |
| 28 |
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeRequest; |
31 |
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeRequest; |
| 29 |
import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; |
32 |
import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; |
| 30 |
import org.eclipse.gmf.runtime.draw2d.ui.mapmode.MapModeUtil; |
33 |
import org.eclipse.gmf.runtime.draw2d.ui.mapmode.MapModeUtil; |
|
Lines 38-44
Link Here
|
| 38 |
import org.eclipse.papyrus.infra.emf.appearance.helper.ShadowFigureHelper; |
41 |
import org.eclipse.papyrus.infra.emf.appearance.helper.ShadowFigureHelper; |
| 39 |
import org.eclipse.papyrus.infra.gmfdiag.common.figure.node.IPapyrusNodeFigure; |
42 |
import org.eclipse.papyrus.infra.gmfdiag.common.figure.node.IPapyrusNodeFigure; |
| 40 |
import org.eclipse.papyrus.uml.diagram.common.figure.node.PapyrusNodeFigure; |
43 |
import org.eclipse.papyrus.uml.diagram.common.figure.node.PapyrusNodeFigure; |
|
|
44 |
import org.eclipse.papyrus.uml.diagram.sequence.edit.helpers.AnchorHelper; |
| 41 |
import org.eclipse.papyrus.uml.diagram.sequence.edit.policies.LifelineXYLayoutEditPolicy; |
45 |
import org.eclipse.papyrus.uml.diagram.sequence.edit.policies.LifelineXYLayoutEditPolicy; |
|
|
46 |
import org.eclipse.papyrus.uml.diagram.sequence.providers.UMLElementTypes; |
| 42 |
import org.eclipse.swt.graphics.Color; |
47 |
import org.eclipse.swt.graphics.Color; |
| 43 |
import org.eclipse.uml2.uml.ExecutionSpecification; |
48 |
import org.eclipse.uml2.uml.ExecutionSpecification; |
| 44 |
|
49 |
|
|
Lines 375-378
Link Here
|
| 375 |
} |
380 |
} |
| 376 |
super.eraseTargetFeedback(request); |
381 |
super.eraseTargetFeedback(request); |
| 377 |
} |
382 |
} |
|
|
383 |
|
| 384 |
/** |
| 385 |
* Add connection on top off the figure during the feedback. |
| 386 |
*/ |
| 387 |
public ConnectionAnchor getTargetConnectionAnchor(Request request) { |
| 388 |
if(request instanceof CreateUnspecifiedTypeConnectionRequest) { |
| 389 |
CreateUnspecifiedTypeConnectionRequest createRequest = (CreateUnspecifiedTypeConnectionRequest)request; |
| 390 |
List<?> relationshipTypes = createRequest.getElementTypes(); |
| 391 |
for(Object obj : relationshipTypes) { |
| 392 |
if(UMLElementTypes.Message_4003.equals(obj)) { |
| 393 |
// Sync Message |
| 394 |
if(!createRequest.getTargetEditPart().equals(createRequest.getSourceEditPart())) { |
| 395 |
return new AnchorHelper.FixedAnchorEx(getFigure(), PositionConstants.TOP); |
| 396 |
} |
| 397 |
// otherwise, this is a recursive call, let destination free |
| 398 |
} |
| 399 |
} |
| 400 |
} else if(request instanceof ReconnectRequest) { |
| 401 |
ReconnectRequest reconnectRequest = (ReconnectRequest)request; |
| 402 |
ConnectionEditPart connectionEditPart = reconnectRequest.getConnectionEditPart(); |
| 403 |
if(connectionEditPart instanceof MessageEditPart) { |
| 404 |
// Sync Message |
| 405 |
return new AnchorHelper.FixedAnchorEx(getFigure(), PositionConstants.TOP); |
| 406 |
} |
| 407 |
} |
| 408 |
|
| 409 |
return super.getTargetConnectionAnchor(request); |
| 410 |
} |
| 411 |
|
| 412 |
/** |
| 413 |
* @see org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart#getTargetConnectionAnchor(org.eclipse.gef.ConnectionEditPart) |
| 414 |
* |
| 415 |
* @param connEditPart |
| 416 |
* The connection edit part. |
| 417 |
* @return The anchor. |
| 418 |
*/ |
| 419 |
@Override |
| 420 |
public ConnectionAnchor getTargetConnectionAnchor(ConnectionEditPart connEditPart) { |
| 421 |
if(connEditPart instanceof MessageEditPart) { |
| 422 |
// Sync Message |
| 423 |
return new AnchorHelper.FixedAnchorEx(getFigure(), PositionConstants.TOP); |
| 424 |
} |
| 425 |
return super.getTargetConnectionAnchor(connEditPart); |
| 426 |
} |
| 427 |
|
| 428 |
|
| 429 |
/** |
| 430 |
* @see org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart#getSourceConnectionAnchor(org.eclipse.gef.Request) |
| 431 |
* |
| 432 |
* @param request |
| 433 |
* The request |
| 434 |
* @return The anchor |
| 435 |
*/ |
| 436 |
@Override |
| 437 |
public ConnectionAnchor getSourceConnectionAnchor(Request request) { |
| 438 |
if(request instanceof CreateUnspecifiedTypeConnectionRequest) { |
| 439 |
CreateUnspecifiedTypeConnectionRequest createRequest = (CreateUnspecifiedTypeConnectionRequest)request; |
| 440 |
List<?> relationshipTypes = createRequest.getElementTypes(); |
| 441 |
for(Object obj : relationshipTypes) { |
| 442 |
if(UMLElementTypes.Message_4005.equals(obj)) { |
| 443 |
// Reply Message |
| 444 |
return new AnchorHelper.FixedAnchorEx(getFigure(),PositionConstants.BOTTOM); |
| 445 |
} |
| 446 |
} |
| 447 |
} else if(request instanceof ReconnectRequest) { |
| 448 |
ReconnectRequest reconnectRequest = (ReconnectRequest)request; |
| 449 |
ConnectionEditPart connectionEditPart = reconnectRequest.getConnectionEditPart(); |
| 450 |
if(connectionEditPart instanceof Message3EditPart) { |
| 451 |
// Reply Message |
| 452 |
return new AnchorHelper.FixedAnchorEx(getFigure(),PositionConstants.BOTTOM); |
| 453 |
} |
| 454 |
} |
| 455 |
return super.getSourceConnectionAnchor(request); |
| 456 |
} |
| 457 |
|
| 458 |
/** |
| 459 |
* @see org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart#getSourceConnectionAnchor(org.eclipse.gef.ConnectionEditPart) |
| 460 |
* |
| 461 |
* @param connEditPart |
| 462 |
* The connection edit part. |
| 463 |
* @return The anchor. |
| 464 |
*/ |
| 465 |
@Override |
| 466 |
public ConnectionAnchor getSourceConnectionAnchor(ConnectionEditPart connEditPart) { |
| 467 |
if(connEditPart instanceof Message3EditPart) { |
| 468 |
// Reply Message |
| 469 |
return new AnchorHelper.FixedAnchorEx(getFigure(), PositionConstants.BOTTOM); |
| 470 |
} |
| 471 |
return super.getSourceConnectionAnchor(connEditPart); |
| 472 |
} |
| 378 |
} |
473 |
} |