org.eclipse.graphiti.ui.internal.figures

## Class GFPolyline

- java.lang.Object
- - org.eclipse.draw2d.Figure
  - - org.eclipse.draw2d.Shape
    - - org.eclipse.graphiti.ui.internal.figures.GFAbstractShape
      - - org.eclipse.graphiti.ui.internal.figures.GFAbstractPointListShape
        - - org.eclipse.graphiti.ui.internal.figures.GFPolyline

All Implemented Interfaces:
  org.eclipse.draw2d.IFigure, org.eclipse.gef.handles.HandleBounds, IVisualStateChangeListener, IVisualStateHolder

Direct Known Subclasses:
  GFPolygon, GFPolylineConnection, GFPolylineDecoration

    public class GFPolyline
    extends GFAbstractPointListShape

A Graphiti Polyline Figure. Most functionality is handled in the super-class. This class only has to define the outline-path and fill-path for the figure-specific painting.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.eclipse.draw2d.Figure

`org.eclipse.draw2d.Figure.FigureIterator`

### Nested classes/interfaces inherited from interface org.eclipse.draw2d.IFigure

`org.eclipse.draw2d.IFigure.NoInsets`

### Field Summary

### Fields inherited from interface org.eclipse.draw2d.IFigure

`MAX_DIMENSION, MIN_DIMENSION, NO_INSETS`

### Constructor Summary

Constructors
Constructor and Description
`GFPolyline(IPictogramElementDelegate pictogramElementDelegate, GraphicsAlgorithm graphicsAlgorithm)` Creates a new GFPolyline.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `containsPointInFigure(int x, int y)` Returns true, if the given point is contained in this Polyline.
`org.eclipse.draw2d.geometry.Rectangle` `getBounds()` Returns the bounding box of the Polyline.
`void` `primTranslate(int dx, int dy)` Translates the shape by the given x/y dimensions.
`void` `setGeneralBezierDistance(int bezierDistance)` Sets the general distance used to calculate the rounding of the bezier-curve.
`void` `setLineWidth(int lw)` Sets the line-width of the Polyline.
`void` `setMinimumSelectionLineWidth(int minimumSelectionLineWidth)` Sets the selection tolerance.
`void` `setSpecificBezierDistances(int[] bezierDistances)` Sets the specific distances used to calculate the rounding of the bezier-curve.
`void` `setSuppressFilling(boolean suppressFilling)` Set, if the filling should be suppressed under all circumstances (even if `Shape.setFill(boolean)` was set to true).

### Methods inherited from class org.eclipse.graphiti.ui.internal.figures.GFAbstractPointListShape

`addPoint, getEnd, getPoints, getStart, insertPoint, removeAllPoints, removePoint, setEnd, setPoint, setPoints, setStart`

### Methods inherited from class org.eclipse.graphiti.ui.internal.figures.GFAbstractShape

`containsPoint, getHandleBounds, getVisualState, paintFigure, setClickArea, setSelectionBorder, visualStateChanged`

### Methods inherited from class org.eclipse.draw2d.Shape

`getAlpha, getAntialias, getLineAttributes, getLineCap, getLineDash, getLineDashOffset, getLineJoin, getLineMiterLimit, getLineStyle, getLineWidth, getLineWidthFloat, setAlpha, setAlpha, setAntialias, setAntialias, setFill, setFillXOR, setLineAttributes, setLineCap, setLineDash, setLineDashOffset, setLineJoin, setLineMiterLimit, setLineStyle, setLineWidthFloat, setOutline, setOutlineXOR, setXOR`

### Methods inherited from class org.eclipse.draw2d.Figure

`add, add, add, add, addAncestorListener, addCoordinateListener, addFigureListener, addFocusListener, addKeyListener, addLayoutListener, addMouseListener, addMouseMotionListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, containsPoint, erase, findFigureAt, findFigureAt, findFigureAt, findFigureAtExcluding, findMouseEventTargetAt, getBackgroundColor, getBorder, getChildren, getClientArea, getClientArea, getClippingStrategy, getCursor, getFont, getForegroundColor, getInsets, getLayoutManager, getLocalBackgroundColor, getLocalForegroundColor, getLocation, getMaximumSize, getMinimumSize, getMinimumSize, getParent, getPreferredSize, getPreferredSize, getSize, getToolTip, getUpdateManager, handleFocusGained, handleFocusLost, handleKeyPressed, handleKeyReleased, handleMouseDoubleClicked, handleMouseDragged, handleMouseEntered, handleMouseExited, handleMouseHover, handleMouseMoved, handleMousePressed, handleMouseReleased, hasFocus, internalGetEventDispatcher, intersects, invalidate, invalidateTree, isCoordinateSystem, isEnabled, isFocusTraversable, isMirrored, isOpaque, isRequestFocusEnabled, isShowing, isVisible, paint, remove, removeAll, removeAncestorListener, removeCoordinateListener, removeFigureListener, removeFocusListener, removeKeyListener, removeLayoutListener, removeMouseListener, removeMouseMotionListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, revalidate, setBackgroundColor, setBorder, setBounds, setClippingStrategy, setConstraint, setCursor, setEnabled, setFocusTraversable, setFont, setForegroundColor, setLayoutManager, setLocation, setMaximumSize, setMinimumSize, setOpaque, setParent, setPreferredSize, setPreferredSize, setRequestFocusEnabled, setSize, setSize, setToolTip, setValid, setVisible, translate, translateFromParent, translateToAbsolute, translateToParent, translateToRelative, validate`

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

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

### Methods inherited from interface org.eclipse.draw2d.IFigure

`add, add, add, add, addAncestorListener, addCoordinateListener, addFigureListener, addFocusListener, addKeyListener, addLayoutListener, addMouseListener, addMouseMotionListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, containsPoint, erase, findFigureAt, findFigureAt, findFigureAt, findFigureAtExcluding, findMouseEventTargetAt, getBackgroundColor, getBorder, getChildren, getClientArea, getClientArea, getClippingStrategy, getCursor, getFont, getForegroundColor, getInsets, getLayoutManager, getLocalBackgroundColor, getLocalForegroundColor, getMaximumSize, getMinimumSize, getMinimumSize, getParent, getPreferredSize, getPreferredSize, getSize, getToolTip, getUpdateManager, handleFocusGained, handleFocusLost, handleKeyPressed, handleKeyReleased, handleMouseDoubleClicked, handleMouseDragged, handleMouseEntered, handleMouseExited, handleMouseHover, handleMouseMoved, handleMousePressed, handleMouseReleased, hasFocus, internalGetEventDispatcher, intersects, invalidate, invalidateTree, isCoordinateSystem, isEnabled, isFocusTraversable, isMirrored, isOpaque, isRequestFocusEnabled, isShowing, isVisible, paint, remove, removeAncestorListener, removeCoordinateListener, removeFigureListener, removeFocusListener, removeKeyListener, removeLayoutListener, removeMouseListener, removeMouseMotionListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, revalidate, setBackgroundColor, setBorder, setBounds, setClippingStrategy, setConstraint, setCursor, setEnabled, setFocusTraversable, setFont, setForegroundColor, setLayoutManager, setLocation, setMaximumSize, setMinimumSize, setOpaque, setParent, setPreferredSize, setRequestFocusEnabled, setSize, setSize, setToolTip, setVisible, translate, translateFromParent, translateToAbsolute, translateToParent, translateToRelative, validate`

### Constructor Detail

#### GFPolyline

    public GFPolyline(IPictogramElementDelegate pictogramElementDelegate,
                      GraphicsAlgorithm graphicsAlgorithm)

Creates a new GFPolyline.

Parameters:
  `pictogramElementDelegate` - The PictogramElementDelegate which provides the GraphicsAlgorithm.
  `graphicsAlgorithm` - The GraphicsAlgorithm which provides the values to paint this Shape.

### Method Detail

#### setMinimumSelectionLineWidth

    public void setMinimumSelectionLineWidth(int minimumSelectionLineWidth)

Sets the selection tolerance. This is the minimum line-width, which is still considered to be a selection of the polyline, independent from the real line-width. For a small line-width this makes it easier to select the polyline.

Parameters:
  `minimumSelectionLineWidth` - The new minimum selection line-width to set.

#### setSuppressFilling

    public void setSuppressFilling(boolean suppressFilling)

Set, if the filling should be suppressed under all circumstances (even if `Shape.setFill(boolean)` was set to true).

Parameters:
  `suppressFilling` - If true, then the filling is suppressed under all circumstances.

#### setGeneralBezierDistance

    public void setGeneralBezierDistance(int bezierDistance)

Sets the general distance used to calculate the rounding of the bezier-curve. This means, that all bezier-distances for this polyline are identical. This is different to `setSpecificBezierDistances(int[])`. See `GFFigureUtil.getBezierPath(List, boolean)` for a more details.

Parameters:
  `bezierDistance` - The general distance used to calculate the rounding of the bezier-curve.

#### setSpecificBezierDistances

    public void setSpecificBezierDistances(int[] bezierDistances)

Sets the specific distances used to calculate the rounding of the bezier-curve. This means, that for each point of the polyline the before-distance and the after distance have to be specified. If this attribute is null, then the value of the attribute in `setGeneralBezierDistance(int)` will be used. See `GFFigureUtil.getBezierPath(List, boolean)` for a more details.

Parameters:
  `bezierDistances` - The specific distance used to calculate the rounding of the bezier-curve.

#### getBounds

    public org.eclipse.draw2d.geometry.Rectangle getBounds()

Returns the bounding box of the Polyline. This is actually the bounding box of the point-list which defines the Polyline. That means, that the bounding box changes whenever the point-list changes. Also note, that calling `Figure.setBounds(Rectangle)` does not change the dimension of the bounding box, but it may translate the bounding box (see `primTranslate(int, int)`).

Specified by:
  `getBounds` in interface `org.eclipse.draw2d.IFigure`
Overrides:
  `getBounds` in class `org.eclipse.draw2d.Figure`
Returns:
  The bounding box of the Polyline.

#### setLineWidth

    public void setLineWidth(int lw)

Sets the line-width of the Polyline. Note that changing the line-width might change the bounds of the Polyline. This is the reason, why this method is overwritten for the Polyline.

Overrides:
  `setLineWidth` in class `org.eclipse.draw2d.Shape`
Parameters:
  `lw` - The line-width to set.
See Also:
  `getBounds()`

#### containsPointInFigure

    public boolean containsPointInFigure(int x,
                                         int y)

Returns true, if the given point is contained in this Polyline. This is the case if

- The point is located on the line, taking into account a certain tolerance (see `#setSelectionTolerance(int)`)
- The point is contained in a child of this Shape

Parameters:
  `x` - The x-coordinate of the point to check.
  `y` - The y-coordinate of the point to check.
Returns:
  true, if the given point is contained in this Polyline.
See Also:
  `GFAbstractShape.containsPoint(int, int)`

#### primTranslate

    public void primTranslate(int dx,
                              int dy)

Translates the shape by the given x/y dimensions. This will translate all points of the Polyline by the given values. Note, that it is necessary to overwrite this method, because the super-class implementation only changes the bounding box, which has no affect on the coordinates of the Polyline.

Overrides:
  `primTranslate` in class `org.eclipse.draw2d.Figure`
Parameters:
  `dx` - The amount to translate horizontally
  `dy` - The amount to translate vertically
See Also:
  `getBounds()`