org.eclipse.graphiti.ui.internal.figures

## Class GFAbstractShape

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

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

Direct Known Subclasses:
  GFAbstractPointListShape, GFAbstractRotatableDecoration, GFEllipse, GFRectangleFigure, GFRoundedRectangle

    public abstract class GFAbstractShape
    extends org.eclipse.draw2d.Shape
    implements org.eclipse.gef.handles.HandleBounds, IVisualStateHolder, IVisualStateChangeListener

This class is an abstract super-class for all Shapes in Graphiti. The main idea is, that the outline and fill-area of a Shape is defined by a Path. Sub-classes usually only have to implement the abstract method `createPath(Rectangle, Graphics, boolean)`

### 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
`GFAbstractShape(IPictogramElementDelegate pictogramElementDelegate, GraphicsAlgorithm graphicsAlgorithm)` Creates a new GFAbstractShape.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `containsPoint(int x, int y)` Returns true, if the given point is contained inside this Shape.
`org.eclipse.draw2d.geometry.Rectangle` `getHandleBounds()` Returns the selection handle bounds of this Shape.
`IVisualState` `getVisualState()` Returns the visual state of this shape.
`void` `paintFigure(org.eclipse.draw2d.Graphics graphics)` First initializes the given Graphics with settings like alpha-value, antialias-value, ...
`void` `setClickArea(GraphicsAlgorithm[] clickArea)`
`void` `setSelectionBorder(GraphicsAlgorithm selectionBorder)`
`void` `visualStateChanged(VisualStateChangedEvent e)` Is called after the visual state changed.

### 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, setLineWidth, 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, getBounds, 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, getBounds, 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

#### GFAbstractShape

    public GFAbstractShape(IPictogramElementDelegate pictogramElementDelegate,
                           GraphicsAlgorithm graphicsAlgorithm)

Creates a new GFAbstractShape.

Parameters:
  `pictogramElementDelegate` - The PictogramElementDelegate which provides the GraphicsAlgorithm.
  `graphicsAlgorithm` - The GraphicsAlgorithm which provides the values to paint this Shape. It is either the immediate GraphicsAlgorithm of the PictogramElementDelegate or a child of that immediate GraphicsAlgorithm. It must not be null.

### Method Detail

#### paintFigure

    public void paintFigure(org.eclipse.draw2d.Graphics graphics)

First initializes the given Graphics with settings like alpha-value, antialias-value, ... Afterwards calls `super.paintFigure(graphics)` to continue with the default painting mechanisms.

Overrides:
  `paintFigure` in class `org.eclipse.draw2d.Shape`
Parameters:
  `graphics` - The Graphics on which to paint.

#### containsPoint

    public final boolean containsPoint(int x,
                                       int y)

Returns true, if the given point is contained inside this Shape. It first calls `containsPointInArea(int, int)` to check if there is a special selection-area defined for this Shape. If not, it returns `containsPointInFigure(int, int)`.

This method is final. Override `containsPointInFigure(int, int)` if needed.

Specified by:
  `containsPoint` in interface `org.eclipse.draw2d.IFigure`
Overrides:
  `containsPoint` in class `org.eclipse.draw2d.Figure`
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 inside this Shape.

#### getHandleBounds

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

Returns the selection handle bounds of this Shape. First it checks, if a special selection GraphicsAlgorithm is defined for this Shape (see `getSelectionBorder()`. Otherwise it just returns the bounds of this Shape.

Specified by:
  `getHandleBounds` in interface `org.eclipse.gef.handles.HandleBounds`
Returns:
  The selection handle bounds of this Shape.

#### getVisualState

    public IVisualState getVisualState()

Returns the visual state of this shape.

Specified by:
  `getVisualState` in interface `IVisualStateHolder`
Returns:
  The visual state of this shape.

#### visualStateChanged

    public void visualStateChanged(VisualStateChangedEvent e)

Is called after the visual state changed.

Specified by:
  `visualStateChanged` in interface `IVisualStateChangeListener`

#### setSelectionBorder

    public void setSelectionBorder(GraphicsAlgorithm selectionBorder)

Parameters:
  `selectionBorder` - the selectionBorder to set

#### setClickArea

    public void setClickArea(GraphicsAlgorithm[] clickArea)

Parameters:
  `clickArea` - the clickArea to set