All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class CH.ifa.draw.standard.CompositeFigure

CH.ifa.draw.standard.AbstractFigure
   |
   +----CH.ifa.draw.standard.CompositeFigure

public abstract class CompositeFigure
extends AbstractFigure
implements FigureChangeListener
A Figure that is composed of several figures. A CompositeFigure doesn't define any layout behavior. It is up to subclassers to arrange the contained figures.
Design Patterns

 o Composite
CompositeFigure enables to treat a composition of figures like a single figure.

See Also:
Figure

Variable Index

 o fFigures
The figures that this figure is composed of
 o fIsValid
Validation status flag.
 o fLayoutManager
The layout manager of this composite.

Constructor Index

 o CompositeFigure()

Method Index

 o acceptSubFigureChange(Point, Point)
Retrun true if the new display box as defined by origin and corner of a subfigure is acceptable.
 o add(Figure)
Adds a figure to the list of figures.
 o addAll(Vector)
Adds a vector of figures.
 o ancestorChanged()
Informs that the ancestry of this has changed.
 o basicMoveBy(int, int)
Moves all the given figures by x and y.
 o beginDrag(MouseEvent)
Propagate beginning of drag to subfigures.
 o bringToFront(Figure)
Brings a child figure to the front (moves last in the display list).
 o broughtToFront()
Informs that a figure has been brought to front.
 o displayBox(Point, Point)
Changes the display box of a composite figure.
 o doLayout()
Calls the layout manager to lay out this composite.
 o draw(Graphics)
Draws all the contained figures
 o endDrag(MouseEvent)
Propagate ending of drag to subfigures.
 o figureAt(int)
Gets a figure at the given index.
 o figureChanged(FigureChangeEvent)
 o figureCount()
Gets number of child figures.
 o figureInvalidated(FigureChangeEvent)
Propagates the figureInvalidated event to my listener.
 o figureRemoved(FigureChangeEvent)
 o figureRequestRemove(FigureChangeEvent)
Propagates the removeFromDrawing request up to the container.
 o figureRequestUpdate(FigureChangeEvent)
Propagates the requestUpdate request up to the container.
 o figures()
Returns an Enumeration for accessing the contained figures.
 o figuresReverse()
Returns an Enumeration for accessing the contained figures in the reverse drawing order.
 o findConnection(int, int)
Finds a connection in this.
 o findFigure(int, int)
Finds a top level Figure.
 o findFigure(Rectangle)
Finds a top level Figure that intersects the given rectangle.
 o findFigure(Rectangle, Figure)
Finds a top level Figure that intersects the given rectangle.
 o findFigureInside(int, int)
Finds a figure but descends into a figure's children.
 o findFigureInsideWithout(int, int, Figure)
Finds a figure but descends into a figure's children.
 o findFigureWithout(int, int, Figure)
Finds a top level Figure, but supresses the passed in figure.
 o getDefaultLayoutManager()
 o getInsets()
Gets the insets of this composite.
 o getLayout()
 o includes(Figure)
Checks if the composite figure has the argument as one of its children.
 o invalidate()
Invalidates the figure.
 o isValid()
Returns the validation status flag.
 o markDirty()
Set the validation status of this composite to false.
 o markDirty(Figure)
Set the validation status of this composite to false.
 o markValid()
Set the validation status of this composite to true.
 o orphan(Figure)
Removes a figure from the figure list, but doesn't release it.
 o orphanAll(Vector)
Removes a vector of figures from the figure's list without releasing the figures.
 o read(StorableInput)
Reads the contained figures from StorableInput.
 o release()
Releases the figure and all its children.
 o remove(Figure)
Removes a figure from the composite.
 o removeAll()
Removes all children.
 o removeAll(Vector)
Removes a vector of figures.
 o removeChild(Figure)
Removes a child figure from the composite (A-PT).
 o replace(Figure, Figure)
Replaces a figure in the drawing without removing it from the drawing.
 o sendToBack(Figure)
Sends a figure to the back of the drawing.
 o setLayout(DrawLayoutManager)
 o validate()
The standard implementation of the validation algorithm.
 o write(StorableOutput)
Writes the contained figures to the StorableOutput.

Variables

 o fFigures
 protected Vector fFigures
The figures that this figure is composed of

See Also:
add, remove
 o fIsValid
 protected boolean fIsValid
Validation status flag. The flag is set to false, when the composite needs to be validated.

 o fLayoutManager
 protected DrawLayoutManager fLayoutManager
The layout manager of this composite.

Constructors

 o CompositeFigure
 protected CompositeFigure()

Methods

 o getDefaultLayoutManager
 protected DrawLayoutManager getDefaultLayoutManager()
 o getLayout
 public DrawLayoutManager getLayout()
 o setLayout
 public void setLayout(DrawLayoutManager manager)
 o acceptSubFigureChange
 public boolean acceptSubFigureChange(Point origin,
                                      Point corner)
Retrun true if the new display box as defined by origin and corner of a subfigure is acceptable. The default is to accept all changes. Override this to specify more restrictive behavior in concrete subclasses.

 o add
 public Figure add(Figure figure)
Adds a figure to the list of figures. Initializes the the figure's container.

 o addAll
 public void addAll(Vector newFigures)
Adds a vector of figures.

See Also:
add
 o remove
 public Figure remove(Figure figure)
Removes a figure from the composite. But does not release it (A-PT).

See Also:
removeAll
 o removeChild
 public Figure removeChild(Figure figure)
Removes a child figure from the composite (A-PT).

 o removeAll
 public void removeAll(Vector figures)
Removes a vector of figures.

See Also:
remove
 o removeAll
 public void removeAll()
Removes all children.

See Also:
remove
 o orphan
 public synchronized Figure orphan(Figure figure)
Removes a figure from the figure list, but doesn't release it. Use this method to temporarily manipulate a figure outside of the drawing.

 o orphanAll
 public void orphanAll(Vector newFigures)
Removes a vector of figures from the figure's list without releasing the figures.

See Also:
orphan
 o replace
 public synchronized void replace(Figure figure,
                                  Figure replacement)
Replaces a figure in the drawing without removing it from the drawing.

 o broughtToFront
 public void broughtToFront()
Informs that a figure has been brought to front. Forwards the event to subfigures in case they need to inform there listeners (such as connections spanning figure hierarchies).

Overrides:
broughtToFront in class AbstractFigure
See Also:
broughtToFront
 o ancestorChanged
 public void ancestorChanged()
Informs that the ancestry of this has changed. Forwards the event to subfigures in case they need to inform there listeners (such as connections spanning figure hierarchies).

Overrides:
ancestorChanged in class AbstractFigure
See Also:
ancestorChanged
 o sendToBack
 public synchronized void sendToBack(Figure figure)
Sends a figure to the back of the drawing.

 o bringToFront
 public synchronized void bringToFront(Figure figure)
Brings a child figure to the front (moves last in the display list). Asks the parent to bring this to front if the child is not a connection (would cause a loop).

Overrides:
bringToFront in class AbstractFigure
 o draw
 public void draw(Graphics g)
Draws all the contained figures

See Also:
draw
 o getInsets
 public Insets getInsets()
Gets the insets of this composite. Default is to return zero insets.

 o figureAt
 public Figure figureAt(int i)
Gets a figure at the given index.

 o figures
 public final FigureEnumeration figures()
Returns an Enumeration for accessing the contained figures. The figures are returned in the drawing order.

Overrides:
figures in class AbstractFigure
 o figureCount
 public int figureCount()
Gets number of child figures.

 o figuresReverse
 public final FigureEnumeration figuresReverse()
Returns an Enumeration for accessing the contained figures in the reverse drawing order.

Overrides:
figuresReverse in class AbstractFigure
 o findFigure
 public Figure findFigure(int x,
                          int y)
Finds a top level Figure. Use this call for hit detection that should not descend into the figure's children.

 o findFigure
 public Figure findFigure(Rectangle r)
Finds a top level Figure that intersects the given rectangle.

 o findFigureWithout
 public Figure findFigureWithout(int x,
                                 int y,
                                 Figure without)
Finds a top level Figure, but supresses the passed in figure. Use this method to ignore a figure that is temporarily inserted into the drawing.

Parameters:
x - the x coordinate
y - the y coordinate
without - the figure to be ignored during the find.
 o findFigure
 public Figure findFigure(Rectangle r,
                          Figure without)
Finds a top level Figure that intersects the given rectangle. It supresses the passed in figure. Use this method to ignore a figure that is temporarily inserted into the drawing.

 o findFigureInside
 public Figure findFigureInside(int x,
                                int y)
Finds a figure but descends into a figure's children. Use this method to implement click-through hit detection, that is, you want to detect the inner most figure containing the given point.

Overrides:
findFigureInside in class AbstractFigure
 o findConnection
 public Figure findConnection(int x,
                              int y)
Finds a connection in this. Descends into the children.

Overrides:
findConnection in class AbstractFigure
 o findFigureInsideWithout
 public Figure findFigureInsideWithout(int x,
                                       int y,
                                       Figure without)
Finds a figure but descends into a figure's children. It supresses the passed in figure. Use this method to ignore a figure that is temporarily inserted into the drawing.

 o includes
 public boolean includes(Figure figure)
Checks if the composite figure has the argument as one of its children.

Overrides:
includes in class AbstractFigure
 o beginDrag
 public void beginDrag(MouseEvent e)
Propagate beginning of drag to subfigures.

Overrides:
beginDrag in class AbstractFigure
 o endDrag
 public void endDrag(MouseEvent e)
Propagate ending of drag to subfigures.

Overrides:
endDrag in class AbstractFigure
 o basicMoveBy
 public void basicMoveBy(int x,
                         int y)
Moves all the given figures by x and y. Doesn't announce any changes. Subclassers override basicMoveBy. Clients usually call moveBy.

Overrides:
basicMoveBy in class AbstractFigure
See Also:
moveBy
 o displayBox
 public void displayBox(Point origin,
                        Point corner)
Changes the display box of a composite figure. Clients usually call this method. It changes the display box and announces the corresponding change. Marks the layout invalid (dirty).

Parameters:
origin - the new origin
corner - the new corner
Overrides:
displayBox in class AbstractFigure
See Also:
displayBox
 o release
 public void release()
Releases the figure and all its children.

Overrides:
release in class AbstractFigure
 o invalidate
 public void invalidate()
Invalidates the figure. This method informs the listeners that the figure's current display box is invalid and should be refreshed. The default for all composites is to add the subfigures' display boxes to the rectangle returned by displayBox().

Overrides:
invalidate in class AbstractFigure
 o figureInvalidated
 public void figureInvalidated(FigureChangeEvent e)
Propagates the figureInvalidated event to my listener.

See Also:
FigureChangeListener
 o figureRequestRemove
 public void figureRequestRemove(FigureChangeEvent e)
Propagates the removeFromDrawing request up to the container.

See Also:
FigureChangeListener
 o figureRequestUpdate
 public void figureRequestUpdate(FigureChangeEvent e)
Propagates the requestUpdate request up to the container.

See Also:
FigureChangeListener
 o figureChanged
 public void figureChanged(FigureChangeEvent e)
 o figureRemoved
 public void figureRemoved(FigureChangeEvent e)
 o validate
 public void validate()
The standard implementation of the validation algorithm.
  1. for each subfigure f: if f is not valid, validate f.
  2. lay out this composite
  3. set the validation flag to true so that isValid method returns true

Overrides:
validate in class AbstractFigure
 o doLayout
 public void doLayout()
Calls the layout manager to lay out this composite.

Overrides:
doLayout in class AbstractFigure
 o isValid
 public boolean isValid()
Returns the validation status flag.

Overrides:
isValid in class AbstractFigure
 o markDirty
 public void markDirty()
Set the validation status of this composite to false.

Overrides:
markDirty in class AbstractFigure
 o markDirty
 public void markDirty(Figure figure)
Set the validation status of this composite to false.

Overrides:
markDirty in class AbstractFigure
 o markValid
 public void markValid()
Set the validation status of this composite to true.

Overrides:
markValid in class AbstractFigure
 o write
 public void write(StorableOutput dw)
Writes the contained figures to the StorableOutput.

Overrides:
write in class AbstractFigure
 o read
 public void read(StorableInput dr) throws IOException
Reads the contained figures from StorableInput.

Overrides:
read in class AbstractFigure

All Packages  Class Hierarchy  This Package  Previous  Next  Index