Class GFPolyline

    • Nested Class Summary

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

        org.eclipse.draw2d.Figure.FigureIterator, org.eclipse.draw2d.Figure.IdentitySearch
      • 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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean 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 (see getAdjustedPointList(PointList, double, double)) of this Shape.
      protected void fillShape​(org.eclipse.draw2d.Graphics graphics)
      Suppresses the filling if specified in setSuppressFilling(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 getAdjustedPointListWithoutZoom()
      Returns the points of this polyline, which are adjusted regarding their line-width but which are not zoomed (see getAdjustedPointList(PointList, double, double)).
      protected java.util.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 getBounds()
      Returns the bounding box of the Polyline.
      protected int getGeneralBezierDistance()
      Returns the general bezier distance used to calculate the rounding of the bezier-curve.
      protected int[] getSpecificBezierDistances()
      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 if Shape.setFill(boolean) was set to true).
      • 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, getClientArea, getClientArea, getClippingStrategy, getCursor, getFlag, getFont, getForegroundColor, getInsets, getLayoutManager, getListeners, 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, 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, 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.
      • getGeneralBezierDistance

        protected int getGeneralBezierDistance()
        Returns the general bezier distance used to calculate the rounding of the bezier-curve. See setGeneralBezierDistance(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 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.
      • getSpecificBezierDistances

        protected int[] getSpecificBezierDistances()
        Returns the specific bezier distance used to calculate the rounding of the bezier-curve. See setSpecificBezierDistances(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 (see getAdjustedPointList(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 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
        Overrides:
        containsPointInFigure in class GFAbstractShape
        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()
      • fillShape

        protected void fillShape​(org.eclipse.draw2d.Graphics graphics)
        Suppresses the filling if specified in setSuppressFilling(boolean). Otherwise it just forwards to the super-class.
        Overrides:
        fillShape in class GFAbstractShape
        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 (see getAdjustedPointList(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 class GFAbstractShape
        Parameters:
        outerBounds - The outer bounds which shall contain the Path. They are calculated from the bounds of this figure by GFFigureUtil.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 java.util.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.