Package org.eclipse.draw2d

# Interface FreeformFigure

All Superinterfaces:
  `IFigure`

All Known Implementing Classes:
  `ConnectionLayer`, `FreeformLayer`, `FreeformLayeredPane`, `ScalableFreeformLayeredPane`

public interface FreeformFigure extends IFigure
A figure that allows its children to extend into negative coordinates. This figure must be placed in a `FreeformViewport`. Also, you shouldn't call `IFigure.setBounds(Rectangle)` on this figure. The bounds will be calculated based on the extent of its children. A FreeformFigure's bounds will be the smallest rectangle that will contain all of its children.

## Nested Class Summary

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

`IFigure.NoInsets`

## Field Summary

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

`MAX_DIMENSION, MIN_DIMENSION, NO_INSETS`

## Method Summary

Modifier and Type
Method
Description
`void`
`addFreeformListener(FreeformListener listener)`
Adds a FreeformListener to this FreeformFigure.
`void`
`fireExtentChanged()`
Notifies listeners that the freeform extent (i.e. bounds) has changed.
`Rectangle`
`getFreeformExtent()`
Returns the freeform extent, essentially the bounds of the FreeformFigure.
`void`
`removeFreeformListener(FreeformListener listener)`
Removes the given listener from this FreeformFigure.
`void`
`setFreeformBounds(Rectangle bounds)`
Sets the freeform bounds of this FreeformFigure.

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

`add, add, add, add, addAncestorListener, addCoordinateListener, addFigureListener, addFocusListener, addKeyListener, addLayoutListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, containsPoint, 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, handleMouseWheelScrolled, hasFocus, internalGetEventDispatcher, intersects, invalidate, invalidateTree, isCoordinateSystem, isEnabled, isFocusTraversable, isMirrored, isOpaque, isRequestFocusEnabled, isShowing, isVisible, paint, remove, removeAncestorListener, removeCoordinateListener, removeFigureListener, removeFocusListener, removeKeyListener, removeLayoutListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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`

## Method Details

### addFreeformListener

void addFreeformListener(FreeformListener listener)
Adds a FreeformListener to this FreeformFigure.

Parameters:
  `listener` - the listener

### fireExtentChanged

void fireExtentChanged()
Notifies listeners that the freeform extent (i.e. bounds) has changed.

### getFreeformExtent

Rectangle getFreeformExtent()
Returns the freeform extent, essentially the bounds of the FreeformFigure. This is based on the extent of its children.

Returns:
  the freeform extent

### removeFreeformListener

void removeFreeformListener(FreeformListener listener)
Removes the given listener from this FreeformFigure.

Parameters:
  `listener` - the listener

### setFreeformBounds

void setFreeformBounds(Rectangle bounds)
Sets the freeform bounds of this FreeformFigure.

Parameters:
  `bounds` - the new freeform bounds