public interface CompositeFigure extends Figure
Figure
s.
A composite figure can be laid out using a Layouter
.
CompositeFigure
listens to requestRemove
events
sent by its child figures, and then removes the child figure which sent
the event.
Composite
Composite figures can be composed of other figures.
Component: Figure
; Composite: CompositeFigure
.
Observer
State changes of figures can be observed by other objects. Specifically
CompositeFigure
observes area invalidations and remove requests
of its child figures. DrawingView
also observes area invalidations
of its drawing object.
Subject: Figure
;
Observer: FigureListener
;
Event: FigureEvent
;
Concrete Observer: CompositeFigure
, DrawingView
.
Observer
Changes in the composition of a composite figure can be observed.
Subject: CompositeFigure
; Observer:
CompositeFigureListener
;
Event: CompositeFigureEvent
.
Strategy
Composite figures can be laid out using different layout algorithms which
are implemented by layouters.
Context: CompositeFigure
; Strategy: Layouter
.
Modifier and Type | Field and Description |
---|---|
static AttributeKey<Insets2D.Double> |
LAYOUT_INSETS
The value of this attribute is a Insets2D.Double object.
|
CONNECTABLE_PROPERTY, REMOVABLE_PROPERTY, SELECTABLE_PROPERTY, TRANSFORMABLE_PROPERTY
Modifier and Type | Method and Description |
---|---|
boolean |
add(Figure child)
Adds a child to the figure.
|
void |
add(int index,
Figure child)
Adds a child to the figure at the specified index.
|
void |
addCompositeFigureListener(CompositeFigureListener listener)
Adds a listener for this composite figure.
|
void |
basicAdd(Figure child)
Adds a child to the figure without firing events.
|
void |
basicAdd(int index,
Figure child)
Adds a child to the figure at the specified index without
firing events.
|
int |
basicRemove(Figure child)
Removes the specified child without firing events.
|
void |
basicRemoveAllChildren()
Removes all children from the composite figure without firing events.
|
Figure |
basicRemoveChild(int index)
Removes the child at the specified index without firing events.
|
boolean |
contains(Figure f)
Returns true if this composite figure contains the specified figure.
|
Figure |
getChild(int index)
Returns the child figure at the specified index.
|
int |
getChildCount()
Returns the number of children.
|
java.util.List<Figure> |
getChildren()
Returns an unchangeable list view on the children.
|
Layouter |
getLayouter()
Get a Layouter object which encapsulated a layout
algorithm for this figure.
|
int |
indexOf(Figure child)
Returns the index of the specified child.
|
void |
layout()
A layout algorithm is used to define how the child components
should be laid out in relation to each other.
|
boolean |
remove(Figure child)
Removes the specified child.
|
void |
removeAllChildren()
Removes all children from the composite figure.
|
Figure |
removeChild(int index)
Removes the child at the specified index.
|
void |
removeCompositeFigureListener(CompositeFigureListener listener)
Removes a listener from this composite figure.
|
void |
setLayouter(Layouter newValue)
Set a Layouter object which encapsulated a layout
algorithm for this figure.
|
addFigureListener, addNotify, addPropertyChangeListener, changed, clone, contains, createHandles, draw, findCompatibleConnector, findConnector, findFigureInside, get, getActions, getAttributes, getAttributesRestoreData, getBounds, getConnectors, getCursor, getDecomposition, getDrawingArea, getEndPoint, getLayer, getPreferredSize, getStartPoint, getTool, getToolTipText, getTransformRestoreData, handleDrop, handleMouseClick, includes, isConnectable, isRemovable, isSelectable, isTransformable, isVisible, remap, removeFigureListener, removeNotify, removePropertyChangeListener, requestRemove, restoreAttributesTo, restoreTransformTo, set, setBounds, transform, willChange
static final AttributeKey<Insets2D.Double> LAYOUT_INSETS
boolean add(Figure child)
This is a convenience method for add(getChildCount(), child);
This method calls figureAdded
on all registered
CompositeFigureListener
s.
true
if this CompositeFigure changed as a result of the
callvoid add(int index, Figure child)
This method calls figureAdded
on all registered
CompositeFigureListener
s.
void basicAdd(Figure child)
This method can be used to reinsert a child figure which has been
temporarily removed from this CompositeFigure (for example to reorder
the sequence of the children) and to efficiently build a drawing from
an InputFormat
.
This is a convenience method for calling
basicAdd(getChildCount(), child);
.
void basicAdd(int index, Figure child)
This method can be used to reinsert a child figure which has been
temporarily removed from this CompositeFigure (for example to reorder
the sequence of the children) and to efficiently build a drawing from
an InputFormat
.
boolean remove(Figure child)
This is a convenience method for calling
removeChild(getChildren().indexOf(child));
This method calls figureRemoved
on all registered
CompositeFigureListener
's.
Figure removeChild(int index)
Calls figureRemoved
on all registered
CompositeFigureListener
's.
void removeAllChildren()
This is a convenience method for
while(getChildCount() > 0) removeChild(0);
int basicRemove(Figure child)
This method can be used to temporarily remove a child from this CompositeFigure (for example to reorder the sequence of the children).
This is a convenience method for calling
basicRemove(indexOf(child));
.
Returns the index of the removed figure. Returns -1 if the figure was not a child of this CompositeFigure.
Figure basicRemoveChild(int index)
This method can be used to temporarily remove a child from this CompositeFigure (for example to reorder the sequence of the children).
Returns the removed child figure.
void basicRemoveAllChildren()
This method can be used to temporarily remove a child from this CompositeFigure (for example to reorder the sequence of the children).
This is a convenience method for
while(getChildCount() > 0) basicRemoveChild(0);
java.util.List<Figure> getChildren()
int getChildCount()
This is a convenience method for calling
getChildren().size();
.
Figure getChild(int index)
This is a convenience method for calling
getChildren().get(index);
.
int indexOf(Figure child)
This is a convenience method for calling
getChildren().indexOf(index);
.
boolean contains(Figure f)
This is a convenience method for calling
getChildren().contains(f);
.
Layouter getLayouter()
void layout()
This method first calls layout() on all child figures which implement the CompositeFigure interface. Then the children are laid out.
The task for laying out the child figures is delegated to a Layouter which can be plugged in at runtime.
void setLayouter(Layouter newValue)
newValue
- encapsulation of a layout algorithm.void addCompositeFigureListener(CompositeFigureListener listener)
void removeCompositeFigureListener(CompositeFigureListener listener)