All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class CH.ifa.draw.contrib.xcomp.FrameComposite

CH.ifa.draw.standard.AbstractFigure
   |
   +----CH.ifa.draw.standard.CompositeFigure
           |
           +----CH.ifa.draw.contrib.xcomp.ManagedComposite
                   |
                   +----CH.ifa.draw.contrib.xcomp.FrameComposite

public abstract class FrameComposite
extends ManagedComposite
A structured (nested) composite, that keeps its children within a root figure, that is, a frame. The root figure can be any Figure that implements the RootFigure interface. A FrameComposite delegates the mehtods concerning display box, handles, and connectors to the root figure.

A FrameComposite can/should implement a layout policy for subfigures. Like windows, FrameComposites can be nested to an arbitrary depth.


Variable Index

 o fHandleChangeEvents
 o fRootFigure

Constructor Index

 o FrameComposite()
 o FrameComposite(Point, Point)

Method Index

 o accept(Figure)
Default is to accept all figures.
 o acceptChange(Point, Point)
Return true if the change in the display box is acceptable.
 o basicDisplayBox(Point, Point)
Change the display box of this.
 o basicMoveBy(int, int)
Moves all the given figures by x and y.
 o changed()
Informs that a figure changed the area of its display box.
 o connectorAt(int, int)
Returns the Figures connector for the specified location.
 o connectorVisibility(boolean)
Sets whether the connectors should be visible.
 o constrainDisplayBox(Point, Point, Point)
Constrain the box defined by its origin and (left-down) corner by the minimum size dimensions.
 o constrainDisplayBox(Rectangle, Point, Point)
Constrain the box defined by its origin and (left-down) corner by the minimum size dimensions.
 o createRootFigure()
A factory method (or a hook) for creating the root figure.
 o createRootFigure(Point, Point)
A factory method (or a hook) for creating the root figure.
 o displayBox()
Gets the display box of a figure.
 o displayBox(Point, Point)
Changes the display box of a composite figure.
 o doLayout()
By default, does nothing.
 o draw(Graphics)
Draws all the contained figures.
 o drop(Figure)
Add the dragged figure to this.
 o figureChanged(FigureChangeEvent)
Handle a subfigure change.
 o figureRequestRemove(FigureChangeEvent)
Propagates the removeFromDrawing request up to the container.
 o findConnectable(int, int, Figure)
Find the subfigure that can be connected at the given point or return this, if no subfigure is found.
 o findCtrlSelectable(int, int)
Returns null.
 o findDropTarget(int, int, Figure)
Traverse the hieararchy of contained figures to find the subfigure at x,y that accepts the figure to be dropped on it.
 o findSelectable(int, int)
Find the subfigure that can be selected at the given point or return this, if no subfigure is found.
 o getAttribute(String)
Returns the named attribute or null if a a figure doesn't have an attribute.
 o getInsets()
Returns insets of (3,3,3,3).
 o getMinimumSize()
Returns the minimum size of this composite.
 o getPreferredSize()
Returns the preferred size of this composite.
 o handles()
Return the handles of this.
 o read(StorableInput)
Reads the figures from StorableInput.
 o release()
Releases the figure and all its children.
 o setAttribute(String, Object)
Sets the named attribute to the new value.
 o setHighlighted(boolean)
Highlights this.

Variables

 o fRootFigure
 protected RootFigure fRootFigure
 o fHandleChangeEvents
 protected boolean fHandleChangeEvents

Constructors

 o FrameComposite
 public FrameComposite()
 o FrameComposite
 public FrameComposite(Point origin,
                       Point corner)

Methods

 o setHighlighted
 public void setHighlighted(boolean isHighlighted)
Highlights this. Forwards the request to the root figure, too.

Overrides:
setHighlighted in class AbstractFigure
 o createRootFigure
 protected abstract RootFigure createRootFigure()
A factory method (or a hook) for creating the root figure. Implement in a concrete subclass.

 o createRootFigure
 protected abstract RootFigure createRootFigure(Point origin,
                                                Point corner)
A factory method (or a hook) for creating the root figure. Implement in a concrete subclass.

 o basicMoveBy
 public void basicMoveBy(int x,
                         int y)
Moves all the given figures by x and y. Doesn't announce any changes. Moves first the root figure and then the subfigures.

Overrides:
basicMoveBy in class CompositeFigure
 o handles
 public Vector handles()
Return the handles of this. Delegate to the root figure.

Overrides:
handles in class AbstractFigure
 o constrainDisplayBox
 protected Pair constrainDisplayBox(Rectangle minimum,
                                    Point origin,
                                    Point corner)
Constrain the box defined by its origin and (left-down) corner by the minimum size dimensions. Returns a pair of points giving the absolute origin and corner of the constrained box. Takes into account the possible change of the origin to facilitate resizing from any corner of the display box.

 o constrainDisplayBox
 protected Pair constrainDisplayBox(Point minimum,
                                    Point origin,
                                    Point corner)
Constrain the box defined by its origin and (left-down) corner by the minimum size dimensions. Returns a pair of points giving the absolute origin and corner of the constrained box. Takes into account the possible change of the origin to facilitate resizing from any corner of the display box.

 o acceptChange
 protected boolean acceptChange(Point origin,
                                Point corner)
Return true if the change in the display box is acceptable. The default implementation just checks the minimum size constraint (if a constraint is set). Override this in subclasses for more specific checking.

 o getMinimumSize
 public Dimension getMinimumSize()
Returns the minimum size of this composite.

Overrides:
getMinimumSize in class AbstractFigure
 o getPreferredSize
 public Dimension getPreferredSize()
Returns the preferred size of this composite. Because the size of the frame is adjustable by handles, the method extends the dimensions returned by the layout manager to the width/height of the current display box if they exceed the dimensions. The effect is that changes in the sizes of the contained figures can only make the preferred size larger, not smaller. Redefine this method in sublcasses if different behavior is wanted.

Overrides:
getPreferredSize in class AbstractFigure
 o changed
 public void changed()
Informs that a figure changed the area of its display box. Suppress propagation of change if fHandleChangeEvents is set to
false
.

Overrides:
changed in class AbstractFigure
See Also:
FigureChangeEvent, changed
 o basicDisplayBox
 public void basicDisplayBox(Point origin,
                             Point corner)
Change the display box of this. Delegate the change to the root figure. Checks the validity of the change by calling acceptChange. If the change is not accepted and a minimum size is set, tries to constrain the change according to the dimensions of the constraint by calling constrainDisplayBox.

Overrides:
basicDisplayBox in class AbstractFigure
See Also:
acceptChange, constrainDisplayBox
 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 CompositeFigure
See Also:
displayBox
 o getInsets
 public Insets getInsets()
Returns insets of (3,3,3,3).

Overrides:
getInsets in class CompositeFigure
 o accept
 public boolean accept(Figure figure)
Default is to accept all figures. Override this in subclasses to selectively accept subfigures.

Overrides:
accept in class AbstractFigure
 o drop
 public Figure drop(Figure dragTarget)
Add the dragged figure to this.

Overrides:
drop in class AbstractFigure
 o findDropTarget
 public Figure findDropTarget(int x,
                              int y,
                              Figure dragTarget)
Traverse the hieararchy of contained figures to find the subfigure at x,y that accepts the figure to be dropped on it. The protocol does not assume that whoever calls findDropTarget tests first whether the called figure contains the point and is different from dragTarget.

Overrides:
findDropTarget in class AbstractFigure
 o displayBox
 public Rectangle displayBox()
Gets the display box of a figure. Delegate to the root figure.

Overrides:
displayBox in class AbstractFigure
 o connectorVisibility
 public void connectorVisibility(boolean isVisible)
Sets whether the connectors should be visible. Invalidates this. Delegate to the root figure.

Overrides:
connectorVisibility in class AbstractFigure
 o connectorAt
 public Connector connectorAt(int x,
                              int y)
Returns the Figures connector for the specified location. Delegate to the root figure.

Overrides:
connectorAt in class AbstractFigure
 o getAttribute
 public Object getAttribute(String name)
Returns the named attribute or null if a a figure doesn't have an attribute. Delegate to the root figure.

 o setAttribute
 public void setAttribute(String name,
                          Object value)
Sets the named attribute to the new value. Delegate to the root figure.

 o draw
 public void draw(Graphics g)
Draws all the contained figures. Sets the current clip to the displaybox of this - warning! assumes the clip shape to be a Rectangle. Descends to children and if a child is about to move adjusts the clip to the displaybox of the child to let it be drawn properly (i.e. outside the display box of the panel).

 o findSelectable
 public Figure findSelectable(int x,
                              int y)
Find the subfigure that can be selected at the given point or return this, if no subfigure is found.

Overrides:
findSelectable in class AbstractFigure
 o findCtrlSelectable
 public Figure findCtrlSelectable(int x,
                                  int y)
Returns null.

Overrides:
findCtrlSelectable in class AbstractFigure
 o findConnectable
 public Figure findConnectable(int x,
                               int y,
                               Figure connection)
Find the subfigure that can be connected at the given point or return this, if no subfigure is found. If this is not connectable, return null.

Overrides:
findConnectable in class AbstractFigure
 o release
 public void release()
Releases the figure and all its children.

Overrides:
release in class CompositeFigure
 o figureRequestRemove
 public void figureRequestRemove(FigureChangeEvent e)
Propagates the removeFromDrawing request up to the container.

Overrides:
figureRequestRemove in class CompositeFigure
See Also:
FigureChangeListener
 o figureChanged
 public void figureChanged(FigureChangeEvent e)
Handle a subfigure change. Ignore subfigures in transit (being dragged), connection figures, subfigures brought to front, and event if itself in transit. Otherwise accommodate the changed subfigure.

Overrides:
figureChanged in class CompositeFigure
 o doLayout
 public void doLayout()
By default, does nothing. Containers (composites) that maintain a lay out of subfigures should implement this.

Overrides:
doLayout in class CompositeFigure
 o read
 public void read(StorableInput dr) throws IOException
Reads the figures from StorableInput.

Overrides:
read in class CompositeFigure

All Packages  Class Hierarchy  This Package  Previous  Next  Index