org.eclipse.graphiti.internal.services.impl

## 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 Summary

Constructors
Constructor and Description
`PeServiceImpl()`

### Method Summary

All Methods Instance Methods Concrete Methods
`BoxRelativeAnchor` `createBoxRelativeAnchor(AnchorContainer anchorContainer)` Creates a box relative anchor inside the given anchor container.
`ChopboxAnchor` `createChopboxAnchor(AnchorContainer anchorContainer)` Creates a chop box anchor inside the given anchor container.
`CompositeConnection` `createCompositeConnection(Diagram diagram)` Creates a composite connection (a connection that is made of several other connections) inside the given diagram.
`ConnectionDecorator` `createConnectionDecorator(Connection connection, boolean active, double location, boolean isRelative)` Creates a connection decorator and adds it to the given connection.
`ContainerShape` `createContainerShape(ContainerShape parentContainerShape, boolean active)` Creates a container shape inside the given parent container shape.
`CurvedConnection` `createCurvedConnection(double[] xy, Diagram diagram)` Creates a curved connection (Bezier curve) inside the given diagram.
`Diagram` `createDiagram(String diagramTypeId, String diagramName)` Creates a diagram.
`Diagram` `createDiagram(String diagramTypeId, String diagramName, boolean snap)` Creates a diagram.
`Diagram` `createDiagram(String diagramTypeId, String diagramName, int gridUnit, boolean snap)` Creates a diagram.
`Diagram` `createDiagram(String diagramTypeId, String diagramName, int horizontalGridUnit, int verticalGridUnit, boolean snap)` Creates a diagram.
`FixPointAnchor` `createFixPointAnchor(AnchorContainer anchorContainer)` Creates a fix point anchor inside the given anchor container.
`FreeFormConnection` `createFreeFormConnection(Diagram diagram)` Creates a free form connection inside the given diagram.
`ManhattanConnection` `createManhattanConnection(Diagram diagram)` Creates a manhattan connection inside the given diagram.
`Shape` `createShape(ContainerShape parentContainerShape, boolean active)` Creates a shape inside the given parent container shape.
`void` `deletePictogramElement(PictogramElement pe)` Deletes the given pictogram element (and with it all aggregated elements!).
`void` `deletePictogramElementIgnoringCrossReferences(Iterable<PictogramElement> pes)` Deletes the given pictogram elements (and with it all aggregated elements!).
`void` `deletePictogramElementIgnoringCrossReferences(PictogramElement pe)` Deletes the given pictogram element (and with it all aggregated elements!).
`PictogramElement` `getActiveContainerPe(GraphicsAlgorithm ga)` Gets the active container pe.
`PictogramElement` `getActiveContainerPe(PictogramElement pictogramElement)` Gets the active container pe.
`List<Connection>` `getAllConnections(Anchor anchor)` Returns all connections of an anchor.
`List<Connection>` `getAllConnections(AnchorContainer anchorContainer)` Returns all connections of an anchor container.
`Collection<PictogramElement>` `getAllContainedPictogramElements(PictogramElement pe)` Gets the all contained pictogram elements.
`Collection<Shape>` `getAllContainedShapes(ContainerShape cs)` Returns all the contained container shapes.
`Anchor` `getChopboxAnchor(AnchorContainer anchorContainer)` Gets the chopbox anchor.
`ILocation` `getConnectionMidpoint(Connection c, double d)` Gets the connection midpoint.
`Diagram` `getDiagramForAnchor(Anchor anchor)` Returns the diagram for the given anchor.
`Diagram` `getDiagramForPictogramElement(PictogramElement pe)` Returns the diagram for the given pictogram element.
`Diagram` `getDiagramForShape(Shape shape)` Returns the diagram for the given shape.
`org.eclipse.emf.ecore.EObject[]` `getElementsNotInDiagram(org.eclipse.emf.ecore.EObject[] elements, Diagram diagram)` From the given elements, returns all elements that are not linked by a PictogramLink in the given Diagram.
`IRectangle` `getGaBoundsForAnchor(Anchor anchor)` Returns the bounds of the graphics algorithm, which is referenced by the anchor.
`List<Connection>` `getIncomingConnections(AnchorContainer anchorContainer)` Returns the incoming connections of an anchor container.
`Object[]` `getLinkedPictogramElements(org.eclipse.emf.ecore.EObject[] elements, Diagram diagram)` Return all the pictogram elements of the given Diagram which have at least one link to one of the given elements.
`ILocationInfo` `getLocationInfo(Shape shape, int x, int y)` Returns the location info for a specific position inside a shape.
`ILocation` `getLocationRelativeToDiagram(Anchor anchor)` Returns the location of the anchor relative to the diagram.
`ILocation` `getLocationRelativeToDiagram(Shape shape)` Returns the location of the shape relative to the diagram.
`List<Connection>` `getOutgoingConnections(AnchorContainer anchorContainer)` Returns the outgoing connections of an anchor container.
`Collection<PictogramElement>` `getPictogramElementChildren(PictogramElement pe)` Returns a pictogram element's children.
`PictogramElement` `getPictogramElementParent(PictogramElement pe)` Gets the pictogram element parent.
`Property` `getProperty(PropertyContainer propertyContainer, String key)` Returns the property of a given property container for a specific key.
`String` `getPropertyValue(PropertyContainer propertyContainer, String key)` Returns the first element of the property values of a given property container for a specific key.
`void` `moveBendpoints(IExecutionInfo executionInfo)` Move bendpoints.
`boolean` `removeProperty(PropertyContainer propertyContainer, String key)` Removes the property of a given property container for a specific key.
`void` `sendToBack(Shape shape)` Reorders parent's children to make the given shape the backmost one.
`void` `sendToFront(Shape shape)` Reorders parent's children to make the given shape the frontmost one.
`void` `setPropertyValue(PropertyContainer propertyContainer, String key, String value)` Sets/modifies the property's value of a given property container for a specific key.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### PeServiceImpl

    public PeServiceImpl()

### Method Detail

#### 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:
  `IPeCreateService.createDiagram(String diagramTypeId, String diagramName, boolean snap)`

#### 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:
  `IPeCreateService.createDiagram(String diagramTypeId, String diagramName, int gridUnit, boolean snap)`

#### 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. `CompositeConnection`s can be used to combine any number of `CurvedConnection`s 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:
  `ILocationInfo`

#### 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

#### 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