Loading plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/SequenceDiagramFreeformLayoutProvider.java +47 −18 Original line number Diff line number Diff line Loading @@ -27,14 +27,13 @@ import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; import org.eclipse.gmf.runtime.diagram.ui.requests.ZOrderRequest; import org.eclipse.gmf.runtime.diagram.ui.services.layout.AbstractLayoutEditPartProvider; import org.eclipse.sirius.diagram.DDiagram; import org.eclipse.sirius.diagram.business.api.helper.SiriusDiagramUtil; import org.eclipse.sirius.diagram.description.DiagramDescription; import org.eclipse.sirius.diagram.ui.edit.api.part.IDDiagramEditPart; import org.eclipse.sirius.diagram.ui.tools.api.layout.provider.DefaultLayoutProvider; import org.eclipse.sirius.diagram.ui.tools.api.layout.provider.LayoutProvider; import org.eclipse.sirius.ext.base.Option; import org.eclipse.sirius.viewpoint.DMappingBased; import org.eclipse.sirius.viewpoint.DSemanticDecorator; import org.eclipse.sirius.viewpoint.DView; import org.eclipse.sirius.viewpoint.description.RepresentationElementMapping; import org.eclipse.sirius.viewpoint.description.Viewpoint; import org.etsi.mts.tdl.ComponentInstance; Loading @@ -46,7 +45,7 @@ import org.etsi.mts.tdl.graphical.sirius.part.Util; public class SequenceDiagramFreeformLayoutProvider implements LayoutProvider { private static final String VIEWPOINT_ID = "org.etsi.mts.tdl"; public static final String VIEWPOINT_ID = "org.etsi.mts.tdl"; public static final String TEST_DESCRIPTION_DIAGRAM_ID = "TestDescriptionDiagram"; public static final String TIME_LABEL_MAPPING_ID = "timeLabel", Loading @@ -56,25 +55,16 @@ public class SequenceDiagramFreeformLayoutProvider implements LayoutProvider { COMBINED_BEHAVIOUR_MAPPING_ID = "combinedBehaviour", BLOCK_MAPPING_ID = "block"; private SequenceFreeformLayoutEditPartProvider layoutProvider = new SequenceFreeformLayoutEditPartProvider(); @Override public boolean provides(IGraphicalEditPart container) { if (container instanceof IDDiagramEditPart) { Option<DDiagram> diagram = ((IDDiagramEditPart) container).resolveDDiagram(); if (diagram.some()) { DDiagram d = diagram.get(); DiagramDescription dDesc = d.getDescription(); Viewpoint vp = (Viewpoint) dDesc.eContainer(); if (VIEWPOINT_ID.equals(vp.getName()) && TEST_DESCRIPTION_DIAGRAM_ID.equals(dDesc.getName())) return true; } } return false; return layoutProvider.provides(container); } @Override public AbstractLayoutEditPartProvider getLayoutNodeProvider(IGraphicalEditPart container) { return new SequenceFreeformLayoutEditPartProvider(); return layoutProvider; } @Override Loading @@ -97,11 +87,50 @@ class SequenceFreeformLayoutEditPartProvider extends TdlAbstractLayoutEditPartPr private static final int MARGIN = 20; private boolean defaultLayout = false; public boolean provides(IGraphicalEditPart container) { if (defaultLayout) return false; if (container instanceof IDDiagramEditPart) { Option<DDiagram> diagram = ((IDDiagramEditPart) container).resolveDDiagram(); if (diagram.some()) { DDiagram d = diagram.get(); DiagramDescription dDesc = d.getDescription(); Viewpoint vp = (Viewpoint) dDesc.eContainer(); if (SequenceDiagramFreeformLayoutProvider.VIEWPOINT_ID.equals(vp.getName()) && SequenceDiagramFreeformLayoutProvider.TEST_DESCRIPTION_DIAGRAM_ID.equals(dDesc.getName())) return true; } } return false; } @Override public Command layoutEditParts(List selectedObjects, IAdaptable layoutHint) { Command defaultCommand = null; if (!defaultLayout) { try { defaultLayout = true; EditPart editPart = (EditPart) selectedObjects.get(0); while (!(editPart instanceof IDDiagramEditPart)) editPart = (EditPart) editPart.getParent(); DefaultLayoutProvider defaultProvider = new DefaultLayoutProvider(); defaultCommand = defaultProvider.layoutEditParts((IGraphicalEditPart)editPart, layoutHint); } finally { defaultLayout = false; } } CompoundCommand cc = new CompoundCommand(); if (defaultCommand != null) cc.add(defaultCommand); Map<IGraphicalEditPart, List<Rectangle>> attachmentLocations = new Hashtable<IGraphicalEditPart, List<Rectangle>>(); double scale = 0; Loading @@ -122,8 +151,8 @@ class SequenceFreeformLayoutEditPartProvider extends TdlAbstractLayoutEditPartPr continue; RepresentationElementMapping mapping = ((DMappingBased)dElement).getMapping(); if (mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_CONSTRAINT_MAPPING_ID) || mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_LABEL_MAPPING_ID)) { if (mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_CONSTRAINT_MAPPING_ID) || mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_LABEL_MAPPING_ID)) { IGraphicalEditPart anchorEditPart = (IGraphicalEditPart) ((ConnectionEditPart) ((GraphicalEditPart) editPart) .getTargetConnections().get(0)).getSource(); Loading Loading
plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/SequenceDiagramFreeformLayoutProvider.java +47 −18 Original line number Diff line number Diff line Loading @@ -27,14 +27,13 @@ import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; import org.eclipse.gmf.runtime.diagram.ui.requests.ZOrderRequest; import org.eclipse.gmf.runtime.diagram.ui.services.layout.AbstractLayoutEditPartProvider; import org.eclipse.sirius.diagram.DDiagram; import org.eclipse.sirius.diagram.business.api.helper.SiriusDiagramUtil; import org.eclipse.sirius.diagram.description.DiagramDescription; import org.eclipse.sirius.diagram.ui.edit.api.part.IDDiagramEditPart; import org.eclipse.sirius.diagram.ui.tools.api.layout.provider.DefaultLayoutProvider; import org.eclipse.sirius.diagram.ui.tools.api.layout.provider.LayoutProvider; import org.eclipse.sirius.ext.base.Option; import org.eclipse.sirius.viewpoint.DMappingBased; import org.eclipse.sirius.viewpoint.DSemanticDecorator; import org.eclipse.sirius.viewpoint.DView; import org.eclipse.sirius.viewpoint.description.RepresentationElementMapping; import org.eclipse.sirius.viewpoint.description.Viewpoint; import org.etsi.mts.tdl.ComponentInstance; Loading @@ -46,7 +45,7 @@ import org.etsi.mts.tdl.graphical.sirius.part.Util; public class SequenceDiagramFreeformLayoutProvider implements LayoutProvider { private static final String VIEWPOINT_ID = "org.etsi.mts.tdl"; public static final String VIEWPOINT_ID = "org.etsi.mts.tdl"; public static final String TEST_DESCRIPTION_DIAGRAM_ID = "TestDescriptionDiagram"; public static final String TIME_LABEL_MAPPING_ID = "timeLabel", Loading @@ -56,25 +55,16 @@ public class SequenceDiagramFreeformLayoutProvider implements LayoutProvider { COMBINED_BEHAVIOUR_MAPPING_ID = "combinedBehaviour", BLOCK_MAPPING_ID = "block"; private SequenceFreeformLayoutEditPartProvider layoutProvider = new SequenceFreeformLayoutEditPartProvider(); @Override public boolean provides(IGraphicalEditPart container) { if (container instanceof IDDiagramEditPart) { Option<DDiagram> diagram = ((IDDiagramEditPart) container).resolveDDiagram(); if (diagram.some()) { DDiagram d = diagram.get(); DiagramDescription dDesc = d.getDescription(); Viewpoint vp = (Viewpoint) dDesc.eContainer(); if (VIEWPOINT_ID.equals(vp.getName()) && TEST_DESCRIPTION_DIAGRAM_ID.equals(dDesc.getName())) return true; } } return false; return layoutProvider.provides(container); } @Override public AbstractLayoutEditPartProvider getLayoutNodeProvider(IGraphicalEditPart container) { return new SequenceFreeformLayoutEditPartProvider(); return layoutProvider; } @Override Loading @@ -97,11 +87,50 @@ class SequenceFreeformLayoutEditPartProvider extends TdlAbstractLayoutEditPartPr private static final int MARGIN = 20; private boolean defaultLayout = false; public boolean provides(IGraphicalEditPart container) { if (defaultLayout) return false; if (container instanceof IDDiagramEditPart) { Option<DDiagram> diagram = ((IDDiagramEditPart) container).resolveDDiagram(); if (diagram.some()) { DDiagram d = diagram.get(); DiagramDescription dDesc = d.getDescription(); Viewpoint vp = (Viewpoint) dDesc.eContainer(); if (SequenceDiagramFreeformLayoutProvider.VIEWPOINT_ID.equals(vp.getName()) && SequenceDiagramFreeformLayoutProvider.TEST_DESCRIPTION_DIAGRAM_ID.equals(dDesc.getName())) return true; } } return false; } @Override public Command layoutEditParts(List selectedObjects, IAdaptable layoutHint) { Command defaultCommand = null; if (!defaultLayout) { try { defaultLayout = true; EditPart editPart = (EditPart) selectedObjects.get(0); while (!(editPart instanceof IDDiagramEditPart)) editPart = (EditPart) editPart.getParent(); DefaultLayoutProvider defaultProvider = new DefaultLayoutProvider(); defaultCommand = defaultProvider.layoutEditParts((IGraphicalEditPart)editPart, layoutHint); } finally { defaultLayout = false; } } CompoundCommand cc = new CompoundCommand(); if (defaultCommand != null) cc.add(defaultCommand); Map<IGraphicalEditPart, List<Rectangle>> attachmentLocations = new Hashtable<IGraphicalEditPart, List<Rectangle>>(); double scale = 0; Loading @@ -122,8 +151,8 @@ class SequenceFreeformLayoutEditPartProvider extends TdlAbstractLayoutEditPartPr continue; RepresentationElementMapping mapping = ((DMappingBased)dElement).getMapping(); if (mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_CONSTRAINT_MAPPING_ID) || mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_LABEL_MAPPING_ID)) { if (mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_CONSTRAINT_MAPPING_ID) || mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_LABEL_MAPPING_ID)) { IGraphicalEditPart anchorEditPart = (IGraphicalEditPart) ((ConnectionEditPart) ((GraphicalEditPart) editPart) .getTargetConnections().get(0)).getSource(); Loading