Class PeServiceImpl

java.lang.Object
org.eclipse.graphiti.internal.services.impl.PeServiceImpl
All Implemented Interfaces:
IPeCreateService, IPeLayoutService, IPeService

public final class PeServiceImpl extends Object implements IPeService
  • Constructor Details

    • PeServiceImpl

      public PeServiceImpl()
  • Method Details

    • createBoxRelativeAnchor

      public BoxRelativeAnchor createBoxRelativeAnchor(AnchorContainer anchorContainer)
      Description copied from interface: IPeCreateService
      Creates a box relative anchor inside the given anchor container.
      Specified by:
      createBoxRelativeAnchor in interface IPeCreateService
      Parameters:
      anchorContainer - the anchors parent
      Returns:
      the new box relative anchor
    • createChopboxAnchor

      public ChopboxAnchor createChopboxAnchor(AnchorContainer anchorContainer)
      Description copied from interface: IPeCreateService
      Creates a chop box anchor inside the given anchor container.
      Specified by:
      createChopboxAnchor in interface IPeCreateService
      Parameters:
      anchorContainer - the anchors parent
      Returns:
      the new chop box anchor
    • createConnectionDecorator

      public ConnectionDecorator createConnectionDecorator(Connection connection, boolean active, double location, boolean isRelative)
      Description copied from interface: IPeCreateService
      Creates a connection decorator and adds it to the given connection.
      Specified by:
      createConnectionDecorator in interface IPeCreateService
      Parameters:
      connection - the connection
      active - TRUE, if decorator is active, FALSE otherwise
      location - location of the decorator (must be between 0 and 1)
      isRelative - true if the decorator should be positioned relative to the connection's midpoint
      Returns:
      the new connection decorator
    • createContainerShape

      public ContainerShape createContainerShape(ContainerShape parentContainerShape, boolean active)
      Description copied from interface: IPeCreateService
      Creates a container shape inside the given parent container shape.
      Specified by:
      createContainerShape in interface IPeCreateService
      Parameters:
      parentContainerShape - the parent container shape
      active - true, if the created shape should be active, false otherwise. An active shape can be selected in the diagram editor and it is also relevant for layouting: an active shape opens a coordinate system relative to its next active parent which can be used for layouting its PictogramElement children, while an inactive one uses the coordinate system of its next direct parent for layouting its children.

      By default all shapes should be active, inactive shapes should be used for grouping purposes or for linking a group of graphical objects to the domain world only.

      For those familiar with GEF: only for active shapes a GEF EditPart will be created by the Graphiti framework, not for inactive ones.

      Returns:
      the new container shape
    • createDiagram

      public Diagram createDiagram(String diagramTypeId, String diagramName)
      Description copied from interface: IPeCreateService
      Creates a diagram. Snapping to the grid is disabled by default.
      Specified by:
      createDiagram in interface IPeCreateService
      Parameters:
      diagramTypeId - the type id of the diagram
      diagramName - the name of the diagram
      Returns:
      the new diagram
      See Also:
    • createDiagram

      public Diagram createDiagram(String diagramTypeId, String diagramName, boolean snap)
      Description copied from interface: IPeCreateService
      Creates a diagram.
      Specified by:
      createDiagram in interface IPeCreateService
      Parameters:
      diagramTypeId - the type id of the diagram
      diagramName - the name of the diagram
      snap - TRUE enables snap to grid
      Returns:
      the new diagram
      See Also:
    • createDiagram

      public Diagram createDiagram(String diagramTypeId, String diagramName, int gridUnit, boolean snap)
      Description copied from interface: IPeCreateService
      Creates a diagram.
      Specified by:
      createDiagram in interface IPeCreateService
      Parameters:
      diagramTypeId - the type id of the diagram
      diagramName - the name of the diagram
      gridUnit - grid size (in both directions) in pixel; if 0 then no grid will be drawn
      snap - TRUE enables snap to grid
      Returns:
      the new diagram
    • createDiagram

      public Diagram createDiagram(String diagramTypeId, String diagramName, int horizontalGridUnit, int verticalGridUnit, boolean snap)
      Description copied from interface: IPeCreateService
      Creates a diagram.
      Specified by:
      createDiagram in interface IPeCreateService
      Parameters:
      diagramTypeId - the type id of the diagram
      diagramName - the name of the diagram
      horizontalGridUnit - horizontal grid size in pixel; if 0 then no grid will be drawn
      verticalGridUnit - vertical grid size in pixel; if 0 then no grid will be drawn
      snap - TRUE enables snap to grid
      Returns:
      the new diagram
    • createFixPointAnchor

      public FixPointAnchor createFixPointAnchor(AnchorContainer anchorContainer)
      Description copied from interface: IPeCreateService
      Creates a fix point anchor inside the given anchor container.
      Specified by:
      createFixPointAnchor in interface IPeCreateService
      Parameters:
      anchorContainer - the anchors parent
      Returns:
      the new fix point anchor
    • createFreeFormConnection

      public FreeFormConnection createFreeFormConnection(Diagram diagram)
      Description copied from interface: IPeCreateService
      Creates a free form connection inside the given diagram.
      Specified by:
      createFreeFormConnection in interface IPeCreateService
      Parameters:
      diagram - the diagram
      Returns:
      the new free form connection
    • createManhattanConnection

      public ManhattanConnection createManhattanConnection(Diagram diagram)
      Description copied from interface: IPeCreateService
      Creates a manhattan connection inside the given diagram.
      Specified by:
      createManhattanConnection in interface IPeCreateService
      Parameters:
      diagram - the diagram
      Returns:
      the new free form connection
    • createCompositeConnection

      public CompositeConnection createCompositeConnection(Diagram diagram)
      Description copied from interface: IPeCreateService
      Creates a composite connection (a connection that is made of several other connections) inside the given diagram. CompositeConnections can be used to combine any number of CurvedConnections into one semantical connection using its CompositeConnection.getChildren() relation. Note that the composite connection itself needs to have an associated GraphicsAlgorithm (usually a Polyline) for its visualization, although it might be invisible and only the child connections have a visible polyline as their visualization.
      Note that this is an experimental API and might change without further notice.
      Specified by:
      createCompositeConnection in interface IPeCreateService
      Parameters:
      diagram - the diagram
      Returns:
      the new composite connection
    • createCurvedConnection

      public CurvedConnection createCurvedConnection(double[] xy, Diagram diagram)
      Description copied from interface: IPeCreateService
      Creates a curved connection (Bezier curve) inside the given diagram.
      Specified by:
      createCurvedConnection in interface IPeCreateService
      Parameters:
      xy - an array of double value pairs defining the control points (two values - x and y - define the point) of the Bezier curve
      diagram - the diagram
      Returns:
      the new curved connection
    • createShape

      public Shape createShape(ContainerShape parentContainerShape, boolean active)
      Description copied from interface: IPeCreateService
      Creates a shape inside the given parent container shape.
      Specified by:
      createShape in interface IPeCreateService
      Parameters:
      parentContainerShape - the parent container shape
      active - true, if the created shape should be active, false otherwise. An active shape can be selected in the diagram editor and it is also relevant for layouting: an active shape opens a coordinate system which can be used for layouting its PictogramElement children, while an inactive one does not provide one but uses the coordinate system of its next active parent for layouting its children.

      By default all shapes should be active, inactive shapes should be used for grouping purposes or for linking a group of graphical objects to the domain world only.

      For those familiar with GEF: only for active shapes a GEF EditPart will be created by the Graphiti framework, not for inactive ones.

      Returns:
      the new shape
    • deletePictogramElement

      public void deletePictogramElement(PictogramElement pe)
      Description copied from interface: IPeService
      Deletes the given pictogram element (and with it all aggregated elements!). This method will also follow all cross references which might for large models cause performance issues. In case you suffer from that you might check to use IPeService.deletePictogramElementIgnoringCrossReferences(Iterable) and IPeService.deletePictogramElementIgnoringCrossReferences(PictogramElement) instead.
      Specified by:
      deletePictogramElement in interface IPeService
      Parameters:
      pe - The pictogram element to delete
    • deletePictogramElementIgnoringCrossReferences

      public void deletePictogramElementIgnoringCrossReferences(PictogramElement pe)
      Description copied from interface: IPeService
      Deletes the given pictogram element (and with it all aggregated elements!). This method will not follow cross references which might for large models have performance advantages over using IPeService.deletePictogramElement(PictogramElement). In case you need to follow cross references as well and update them you will need to use IPeService.deletePictogramElement(PictogramElement) instead.
      Specified by:
      deletePictogramElementIgnoringCrossReferences in interface IPeService
      Parameters:
      pe - The pictogram element to delete
    • deletePictogramElementIgnoringCrossReferences

      public void deletePictogramElementIgnoringCrossReferences(Iterable<PictogramElement> pes)
      Description copied from interface: IPeService
      Deletes the given pictogram elements (and with it all aggregated elements!). This method will not follow cross references which might for large models have performance advantages over using IPeService.deletePictogramElement(PictogramElement). In case you need to follow cross references as well and update them you will need to use IPeService.deletePictogramElement(PictogramElement) instead.
      Specified by:
      deletePictogramElementIgnoringCrossReferences in interface IPeService
      Parameters:
      pes - The pictogram elements to delete
    • getActiveContainerPe

      public PictogramElement getActiveContainerPe(GraphicsAlgorithm ga)
      Description copied from interface: IPeService
      Gets the active container pe.
      Specified by:
      getActiveContainerPe in interface IPeService
      Parameters:
      ga - the ga
      Returns:
      the active container pe
    • getActiveContainerPe

      public PictogramElement getActiveContainerPe(PictogramElement pictogramElement)
      Description copied from interface: IPeService
      Gets the active container pe.
      Specified by:
      getActiveContainerPe in interface IPeService
      Parameters:
      pictogramElement - the pictogram element
      Returns:
      the active container pe
    • getAllConnections

      public List<Connection> getAllConnections(Anchor anchor)
      Description copied from interface: IPeService
      Returns all connections of an anchor.
      Specified by:
      getAllConnections in interface IPeService
      Parameters:
      anchor - the anchor
      Returns:
      list of connections
    • getAllConnections

      public List<Connection> getAllConnections(AnchorContainer anchorContainer)
      Description copied from interface: IPeService
      Returns all connections of an anchor container.
      Specified by:
      getAllConnections in interface IPeService
      Parameters:
      anchorContainer - the anchor container
      Returns:
      list of connections
    • getAllContainedPictogramElements

      public Collection<PictogramElement> getAllContainedPictogramElements(PictogramElement pe)
      Description copied from interface: IPeService
      Gets the all contained pictogram elements.
      Specified by:
      getAllContainedPictogramElements in interface IPeService
      Parameters:
      pe - the pe
      Returns:
      the all contained pictogram elements
    • getAllContainedShapes

      public Collection<Shape> getAllContainedShapes(ContainerShape cs)
      Description copied from interface: IPeService
      Returns all the contained container shapes. Dives through the whole shapes tree.
      Specified by:
      getAllContainedShapes in interface IPeService
      Parameters:
      cs - the container shape
      Returns:
      all the contained container shapes
    • getChopboxAnchor

      public Anchor getChopboxAnchor(AnchorContainer anchorContainer)
      Description copied from interface: IPeService
      Gets the chopbox anchor.
      Specified by:
      getChopboxAnchor in interface IPeService
      Parameters:
      anchorContainer - the anchor container
      Returns:
      The chopbox anchor of the anchor container if one exist, otherwise null
    • getConnectionMidpoint

      public ILocation getConnectionMidpoint(Connection c, double d)
      Description copied from interface: IPeLayoutService
      Gets the connection midpoint.
      Specified by:
      getConnectionMidpoint in interface IPeLayoutService
      Parameters:
      c - the connection
      d - a relative location on the connection (must be between 0 and 1)
      Returns:
      the connection midpoint
    • getDiagramForAnchor

      public Diagram getDiagramForAnchor(Anchor anchor)
      Description copied from interface: IPeService
      Returns the diagram for the given anchor.
      Specified by:
      getDiagramForAnchor in interface IPeService
      Parameters:
      anchor - the anchor
      Returns:
      the diagram
    • getDiagramForPictogramElement

      public Diagram getDiagramForPictogramElement(PictogramElement pe)
      Description copied from interface: IPeService
      Returns the diagram for the given pictogram element.
      Specified by:
      getDiagramForPictogramElement in interface IPeService
      Parameters:
      pe - the pe
      Returns:
      the diagram
    • getDiagramForShape

      public Diagram getDiagramForShape(Shape shape)
      Description copied from interface: IPeService
      Returns the diagram for the given shape.
      Specified by:
      getDiagramForShape in interface IPeService
      Parameters:
      shape - the shape
      Returns:
      the diagram
    • getElementsNotInDiagram

      public org.eclipse.emf.ecore.EObject[] getElementsNotInDiagram(org.eclipse.emf.ecore.EObject[] elements, Diagram diagram)
      Description copied from interface: IPeService
      From the given elements, returns all elements that are not linked by a PictogramLink in the given Diagram.
      Specified by:
      getElementsNotInDiagram in interface IPeService
      Parameters:
      elements - the elements
      diagram - the diag
      Returns:
      the elements not in diagram
    • getGaBoundsForAnchor

      public IRectangle getGaBoundsForAnchor(Anchor anchor)
      Description copied from interface: IPeLayoutService
      Returns the bounds of the graphics algorithm, which is referenced by the anchor.
      Specified by:
      getGaBoundsForAnchor in interface IPeLayoutService
      Parameters:
      anchor - the anchor
      Returns:
      the bounds of the anchor graphics algorithm
    • getIncomingConnections

      public List<Connection> getIncomingConnections(AnchorContainer anchorContainer)
      Description copied from interface: IPeService
      Returns the incoming connections of an anchor container.
      Specified by:
      getIncomingConnections in interface IPeService
      Parameters:
      anchorContainer - the anchor container
      Returns:
      list of incoming connections
    • getLinkedPictogramElements

      public Object[] getLinkedPictogramElements(org.eclipse.emf.ecore.EObject[] elements, Diagram diagram)
      Description copied from interface: IPeService
      Return all the pictogram elements of the given Diagram which have at least one link to one of the given elements.
      Specified by:
      getLinkedPictogramElements in interface IPeService
      Parameters:
      elements - the elements
      diagram - the diag
      Returns:
      the linked pictogram elements
    • getLocationInfo

      public ILocationInfo getLocationInfo(Shape shape, int x, int y)
      Description copied from interface: IPeLayoutService
      Returns the location info for a specific position inside a shape. The location info contains the shape and the graphics algorithm at the given position.
      Specified by:
      getLocationInfo in interface IPeLayoutService
      Parameters:
      shape - the shape
      x - x coordinate
      y - y coordinate
      Returns:
      the location info
      See Also:
    • getLocationRelativeToDiagram

      public ILocation getLocationRelativeToDiagram(Anchor anchor)
      Description copied from interface: IPeLayoutService
      Returns the location of the anchor relative to the diagram.
      Specified by:
      getLocationRelativeToDiagram in interface IPeLayoutService
      Parameters:
      anchor - the given anchor
      Returns:
      the relative location
    • getLocationRelativeToDiagram

      public ILocation getLocationRelativeToDiagram(Shape shape)
      Description copied from interface: IPeLayoutService
      Returns the location of the shape relative to the diagram.
      Specified by:
      getLocationRelativeToDiagram in interface IPeLayoutService
      Parameters:
      shape - the given shape
      Returns:
      the relative location
    • getOutgoingConnections

      public List<Connection> getOutgoingConnections(AnchorContainer anchorContainer)
      Description copied from interface: IPeService
      Returns the outgoing connections of an anchor container.
      Specified by:
      getOutgoingConnections in interface IPeService
      Parameters:
      anchorContainer - the anchor container
      Returns:
      list of outgoing connections
    • getPictogramElementChildren

      public Collection<PictogramElement> getPictogramElementChildren(PictogramElement pe)
      Description copied from interface: IPeService
      Returns a pictogram element's children.
      Some Examples: returns all connections of a diagram, all shapes of a container shape, all decorators of a connection, all anchors of an anchor container
      Specified by:
      getPictogramElementChildren in interface IPeService
      Parameters:
      pe - the given pictogram element
      Returns:
      all the pictogram element's children
    • getPictogramElementParent

      public PictogramElement getPictogramElementParent(PictogramElement pe)
      Description copied from interface: IPeService
      Gets the pictogram element parent.
      Specified by:
      getPictogramElementParent in interface IPeService
      Parameters:
      pe - the pe
      Returns:
      the pictogram element parent
    • getProperty

      public Property getProperty(PropertyContainer propertyContainer, String key)
      Description copied from interface: IPeService
      Returns the property of a given property container for a specific key.
      Specified by:
      getProperty in interface IPeService
      Parameters:
      propertyContainer - The property container (e.g. PictogramElement or GraphicsAlgorithm)
      key - The property key
      Returns:
      The property for the key
    • getPropertyValue

      public String getPropertyValue(PropertyContainer propertyContainer, String key)
      Description copied from interface: IPeService
      Returns the first element of the property values of a given property container for a specific key.
      Specified by:
      getPropertyValue in interface IPeService
      Parameters:
      propertyContainer - The property container (e.g. PictogramElement or GraphicsAlgorithm)
      key - The property key
      Returns:
      The fist value of the property values for the key
    • getXOfPictogramElement

      protected static int getXOfPictogramElement(PictogramElement pe)
      Returns the location of the given pictogram element - more exactly the location of the pictogram element's graphics algorithm.
      Parameters:
      pe - the given pictogram element
      Returns:
      the location
    • getYOfPictogramElement

      protected static int getYOfPictogramElement(PictogramElement pe)
      Returns the location of the given pictogram element - more exactly the location of the pictogram element's graphics algorithm.
      Parameters:
      pe - the given pictogram element
      Returns:
      the location
    • moveBendpoints

      public void moveBendpoints(IExecutionInfo executionInfo)
      Description copied from interface: IPeService
      Move bendpoints.
      Specified by:
      moveBendpoints in interface IPeService
      Parameters:
      executionInfo - the execution info
    • removeProperty

      public boolean removeProperty(PropertyContainer propertyContainer, String key)
      Description copied from interface: IPeService
      Removes the property of a given property container for a specific key.
      Specified by:
      removeProperty in interface IPeService
      Parameters:
      propertyContainer - The property container (e.g. PictogramElement or GraphicsAlgorithm)
      key - The property key
      Returns:
      True, if the property existed
    • sendToBack

      public void sendToBack(Shape shape)
      Description copied from interface: IPeService
      Reorders parent's children to make the given shape the backmost one. This is a convenient service to modify the z order. The z order of shapes in their containers can also be modified by changing the order of the children in the corresponding container shape directly. The last element in the list will be painted on top.
      Specified by:
      sendToBack in interface IPeService
      Parameters:
      shape - shape to make the backmost one
    • sendToFront

      public void sendToFront(Shape shape)
      Description copied from interface: IPeService
      Reorders parent's children to make the given shape the frontmost one. This is a convenient service to modify the z order. The z order of shapes in their containers can also be modified by changing the order of the children in the corresponding container shape directly. The last element in the list will be painted on top.
      Specified by:
      sendToFront in interface IPeService
      Parameters:
      shape - shape to make the frontmost one
    • setPropertyValue

      public void setPropertyValue(PropertyContainer propertyContainer, String key, String value)
      Description copied from interface: IPeService
      Sets/modifies the property's value of a given property container for a specific key.
      The property object will be created if it does not exist.
      Specified by:
      setPropertyValue in interface IPeService
      Parameters:
      propertyContainer - The property container (e.g. PictogramElement or GraphicsAlgorithm)
      key - The property key
      value - The new property value