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
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, org.eclipse.draw2d.Figure.IdentitySearch, org.eclipse.draw2d.Figure.ReverseFigureChildrenIterator
Nested classes/interfaces inherited from interface org.eclipse.draw2d.IFigure
org.eclipse.draw2d.IFigure.NoInsets
-
Field Summary
Fields inherited from class org.eclipse.draw2d.Shape
lineStyle, lineWidth
Fields inherited from class org.eclipse.draw2d.Figure
bgColor, border, bounds, fgColor, flags, font, MAX_FLAG, maxSize, minSize, NO_MANAGER, prefSize, toolTip
Fields inherited from interface org.eclipse.draw2d.IFigure
MAX_DIMENSION, MIN_DIMENSION, NO_INSETS
-
Constructor Summary
ConstructorDescriptionGFPolyline
(IPictogramElementDelegate pictogramElementDelegate, GraphicsAlgorithm graphicsAlgorithm) Creates a new GFPolyline. -
Method Summary
Modifier and TypeMethodDescriptionboolean
containsPointInFigure
(int x, int y) Returns true, if the given point is contained in this Polyline.protected org.eclipse.swt.graphics.Path
createPath
(org.eclipse.draw2d.geometry.Rectangle outerBoundss, org.eclipse.draw2d.Graphics graphics, boolean isFill) Returns the Path specifying a polyline for the adjusted point-list (seegetAdjustedPointList(PointList, double, double)
) of this Shape.protected void
fillShape
(org.eclipse.draw2d.Graphics graphics) Suppresses the filling if specified insetSuppressFilling(boolean)
.protected org.eclipse.draw2d.geometry.PointList
getAdjustedPointList
(org.eclipse.draw2d.geometry.PointList points, double zoom, double lw) Returns a new instance of the input point-list, which is adjusted regarding the given zoom-factor and line-width.protected org.eclipse.draw2d.geometry.PointList
Returns the points of this polyline, which are adjusted regarding their line-width but which are not zoomed (seegetAdjustedPointList(PointList, double, double)
).protected List<BezierPoint>
getBezierPoints
(org.eclipse.draw2d.geometry.PointList points, double zoom) Returns a new list of bezier-points, which is calculated from the given point list.org.eclipse.draw2d.geometry.Rectangle
Returns the bounding box of the Polyline.protected int
Returns the general bezier distance used to calculate the rounding of the bezier-curve.protected int[]
Returns the specific bezier distance used to calculate the rounding of the bezier-curve.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 ifShape.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, containsPointInArea, fillPath, getClickArea, getConfigurationProvider, getGraphicsAlgorithm, getHandleBounds, getLineWidth, getPictogramElementDelegate, getPreferences, getSelectionBorder, getVisualState, getZoomLevel, outlineShape, paintFigure, paintShape, setClickArea, setSelectionBorder, transformToFillBounds, 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, addListener, addMouseListener, addMouseMotionListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, containsPoint, erase, findDescendantAtExcluding, findFigureAt, findFigureAt, findFigureAt, findFigureAtExcluding, findMouseEventTargetAt, findMouseEventTargetInDescendantsAt, fireCoordinateSystemChanged, fireFigureMoved, fireMoved, firePropertyChange, firePropertyChange, firePropertyChange, getBackgroundColor, getBorder, getChildren, getChildrenRevIterable, getClientArea, getClientArea, getClippingStrategy, getCursor, getFlag, getFont, getForegroundColor, getInsets, getLayoutManager, getListeners, getListenersIterable, getLocalBackgroundColor, getLocalFont, 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, isMouseEventTarget, isOpaque, isRequestFocusEnabled, isShowing, isValid, isValidationRoot, isVisible, layout, optimizeClip, paint, paintBorder, paintChildren, paintClientArea, remove, removeAll, removeAncestorListener, removeCoordinateListener, removeFigureListener, removeFocusListener, removeKeyListener, removeLayoutListener, removeListener, removeMouseListener, removeMouseMotionListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, revalidate, setBackgroundColor, setBorder, setBounds, setChildrenDirection, setChildrenEnabled, setChildrenOrientation, setClippingStrategy, setConstraint, setCursor, setEnabled, setFlag, setFocusTraversable, setFont, setForegroundColor, setLayoutManager, setLocation, setMaximumSize, setMinimumSize, setOpaque, setParent, setPreferredSize, setPreferredSize, setRequestFocusEnabled, setSize, setSize, setToolTip, setValid, setVisible, translate, translateFromParent, translateToAbsolute, translateToParent, translateToRelative, useLocalCoordinates, validate
Methods inherited from class java.lang.Object
clone, equals, finalize, 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, 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, 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 Details
-
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 Details
-
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 ifShape.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 tosetSpecificBezierDistances(int[])
. SeeGFFigureUtil.getBezierPath(List, boolean)
for a more details.- Parameters:
bezierDistance
- The general distance used to calculate the rounding of the bezier-curve.
-
getGeneralBezierDistance
protected int getGeneralBezierDistance()Returns the general bezier distance used to calculate the rounding of the bezier-curve. SeesetGeneralBezierDistance(int)
for more details.- Returns:
- The general bezier 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 insetGeneralBezierDistance(int)
will be used. SeeGFFigureUtil.getBezierPath(List, boolean)
for a more details.- Parameters:
bezierDistances
- The specific distance used to calculate the rounding of the bezier-curve.
-
getSpecificBezierDistances
protected int[] getSpecificBezierDistances()Returns the specific bezier distance used to calculate the rounding of the bezier-curve. SeesetSpecificBezierDistances(int[])
for more details.- Returns:
- The specific bezier distance used to calculate the rounding of the bezier-curve.
-
getAdjustedPointListWithoutZoom
protected org.eclipse.draw2d.geometry.PointList getAdjustedPointListWithoutZoom()Returns the points of this polyline, which are adjusted regarding their line-width but which are not zoomed (seegetAdjustedPointList(PointList, double, double)
). This is a buffered value, which is used to check, if a point is contained on this polyline. It is re-calculated whenever the "real" point-list of this polyline changes.- Returns:
- Returns the points of this polyline, which are translated regarding their line-width.
-
getAdjustedPointList
protected org.eclipse.draw2d.geometry.PointList getAdjustedPointList(org.eclipse.draw2d.geometry.PointList points, double zoom, double lw) Returns a new instance of the input point-list, which is adjusted regarding the given zoom-factor and line-width. This is the point-list which will be outlined on the graphics. So this allows to draw along slightly different point-list than the original point-list.The implementation of this method just forwards to
GFFigureUtil.getAdjustedPointList(PointList, double, double)
.- Parameters:
points
- The point-list which to adjust.zoom
- The zoom-factor to regard.lw
- The line-width to regard.
-
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 callingFigure.setBounds(Rectangle)
does not change the dimension of the bounding box, but it may translate the bounding box (seeprimTranslate(int, int)
).- Specified by:
getBounds
in interfaceorg.eclipse.draw2d.IFigure
- Overrides:
getBounds
in classorg.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 classorg.eclipse.draw2d.Shape
- Parameters:
lw
- The line-width to set.- See Also:
-
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
- Overrides:
containsPointInFigure
in classGFAbstractShape
- 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:
- The point is located on the line, taking into account a certain
tolerance (see
-
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 classorg.eclipse.draw2d.Figure
- Parameters:
dx
- The amount to translate horizontallydy
- The amount to translate vertically- See Also:
-
fillShape
protected void fillShape(org.eclipse.draw2d.Graphics graphics) Suppresses the filling if specified insetSuppressFilling(boolean)
. Otherwise it just forwards to the super-class.- Overrides:
fillShape
in classGFAbstractShape
- Parameters:
graphics
- The Graphics on which to fill this Shape.
-
createPath
protected org.eclipse.swt.graphics.Path createPath(org.eclipse.draw2d.geometry.Rectangle outerBoundss, org.eclipse.draw2d.Graphics graphics, boolean isFill) Returns the Path specifying a polyline for the adjusted point-list (seegetAdjustedPointList(PointList, double, double)
) of this Shape. Note, that the outer bounds are ignored to calculate the Path, in contrast to most other Shapes. It does not differenciate between a fill Path and an outline Path.- Specified by:
createPath
in classGFAbstractShape
- Parameters:
outerBounds
- The outer bounds which shall contain the Path. They are calculated from the bounds of this figure byGFFigureUtil.getAdjustedRectangle(Rectangle, double, int)
. Note, that those outline-bounds are just a suggestion which works fine for many cases.graphics
- The Graphics on which the outline Path shall be painted. It can be used to react on Graphics specific values, like the zoom-level of the Graphics.isFill
- if true, the Path is used for filling the Shape, otherwise for outlining the Shape.- Returns:
- The Path specifying a polyline for the point-list of this Shape.
-
getBezierPoints
protected List<BezierPoint> getBezierPoints(org.eclipse.draw2d.geometry.PointList points, double zoom) Returns a new list of bezier-points, which is calculated from the given point list.- Parameters:
points
- The point list, from which to calculate the bezier-points.zoom
- The zoom-level used to adjust the bezier distances.- Returns:
- a new list of bezier-points, which is calculated from the given point list.
-