package org.eclipse.uml2.diagram.sequence.internal.layout.abstractgde.gef; import org.eclipse.uml2.diagram.common.editparts.PrimaryShapeEditPart; import org.eclipse.uml2.diagram.sequence.edit.parts.InteractionEditPart; import org.eclipse.uml2.diagram.sequence.edit.parts.LayeredInteractionUseEditPart; import org.eclipse.uml2.diagram.sequence.edit.parts.LayeredOperandEditPart; import org.eclipse.uml2.diagram.sequence.edit.parts.LifelineEditPart; import org.eclipse.uml2.diagram.sequence.figures.LifelineBracketContainerShape; import org.eclipse.uml2.diagram.sequence.frame.FrameWithPentagon; import org.eclipse.uml2.diagram.sequence.frame.FrameWithShadeAndPentagon; import org.eclipse.uml2.diagram.sequence.internal.layout.abstractgde.AbsElementPropertyAccess; import org.eclipse.uml2.diagram.sequence.internal.layout.abstractgde.AbsLink; import org.eclipse.uml2.diagram.sequence.internal.layout.abstractgde.AbsNode; import org.eclipse.uml2.diagram.sequence.internal.layout.manage.InteractionLayouter; import org.eclipse.uml2.diagram.sequence.internal.layout.model.LMFrame.BackgroundLayouter; import org.eclipse.uml2.diagram.sequence.internal.layout.model.LMInteractionOccurence.InteractionUseLayouter; import org.eclipse.uml2.diagram.sequence.internal.layout.model.LMInteractionOperand.DelimitLineLayouter; import org.eclipse.uml2.diagram.sequence.internal.layout.model.LMLifeLine.DetailsLayouter; import org.eclipse.uml2.diagram.sequence.internal.layout.model.LMLifeLineBracket.LifelineBracketHorizontalLayouter; import org.eclipse.uml2.diagram.sequence.internal.layout.model.LMVisibleFrameWithPentagon.PentagonLayouter; import org.eclipse.uml2.diagram.sequence.internal.layout.model.MessageLabelLayouter.MessageLabel; import org.eclipse.uml2.diagram.sequence.internal.viewmap.InvocationViewmapOptions; public class AbsElementPropertyAccessU2T extends AbsElementPropertyAccess { public DetailsLayouter getLifeLineDetailsLayouter(AbsNode lifelineAbsNode) { AbsElementGef absNodeImpl = (AbsElementGef)lifelineAbsNode; LifelineEditPart editPart = (LifelineEditPart)absNodeImpl.getEditPart(); return editPart.getPrimaryShape().getLifelineLayout(); } public BackgroundLayouter getBackgroundLayouter(AbsNode frameAbsNode) { AbsElementGef absNodeImpl = (AbsElementGef)frameAbsNode; PrimaryShapeEditPart editPart = (PrimaryShapeEditPart)absNodeImpl.getEditPart(); if (editPart.getPrimaryShape() instanceof FrameWithShadeAndPentagon){ FrameWithShadeAndPentagon figureImpl = (FrameWithShadeAndPentagon) editPart.getPrimaryShape(); return figureImpl.getBackgroundLayouter(); } else { System.err.println("FrameNode without a frame: AbsNode: " + frameAbsNode + ", EP: " + editPart); return null; } } public DelimitLineLayouter getDelimitLineLayouter(AbsNode interactionOperandAbsNode) { AbsElementGef absNodeImpl = (AbsElementGef)interactionOperandAbsNode; LayeredOperandEditPart editPartImpl = (LayeredOperandEditPart)absNodeImpl.getEditPart(); return editPartImpl.getPrimaryShape().getDelimitLineLayouter(); } public PentagonLayouter getPentagonLayouter(AbsNode gdeNode) { AbsElementGef absNodeImpl = (AbsElementGef)gdeNode; PrimaryShapeEditPart editPartImpl = (PrimaryShapeEditPart)absNodeImpl.getEditPart(); FrameWithPentagon pentagonOwner = (FrameWithPentagon) editPartImpl.getPrimaryShape(); return pentagonOwner.getPentagonLayouter(); } public InteractionUseLayouter getInteractionUseLayouter(AbsNode interactionUseNode) { AbsElementGef absNodeImpl = (AbsElementGef)interactionUseNode; LayeredInteractionUseEditPart editPartImpl = (LayeredInteractionUseEditPart)absNodeImpl.getEditPart(); return editPartImpl.getPrimaryShape(); } public boolean isViewmappedAsAlienShortcut(AbsNode gdeNode) { // TODO Auto-generated method stub return false; } public LifelineBracketHorizontalLayouter getLifelineBracketHorizontalLayouter(final AbsNode lifelineBracketAbsNode) { return new LifelineBracketHorizontalLayouter() { public void setHorizontalPositions(int x, int paintableWidth, int containerWidth) { AbsElementGef absNodeImpl = (AbsElementGef)lifelineBracketAbsNode; PrimaryShapeEditPart editPartImpl = (PrimaryShapeEditPart)absNodeImpl.getEditPart(); LifelineBracketContainerShape figureImpl = (LifelineBracketContainerShape) editPartImpl.getPrimaryShape(); figureImpl.setPaintableWidth(paintableWidth); lifelineBracketAbsNode.setX(x); lifelineBracketAbsNode.setWidth(containerWidth); } }; } public MessageLabel[] getLabels(AbsLink absLink) { return new MessageLabel[0]; } private static final InvocationViewmapOptions DUMMY_OPTIONS = new InvocationViewmapOptions(){ public boolean isOnLifeline() { return true; } public boolean isInvocationVisible() { return true; } }; public InvocationViewmapOptions getInvocationViewmapOptions(AbsNode gdeNode) { return DUMMY_OPTIONS; } public InteractionLayouter getInteractionLayouter(AbsNode interactionNode) { AbsElementGef absNodeImpl = (AbsElementGef)interactionNode; InteractionEditPart editPartImpl = (InteractionEditPart)absNodeImpl.getEditPart(); return editPartImpl.getPrimaryShape().getInteractionLayouter(); } @Override public boolean canAsynchCallBeStraight(AbsLink callMessage) { if (false){ throw new UnsupportedOperationException(); } return false; } }