|
JHotDraw 7.1 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Figure
A Figure knows its bounds and it can draw itself. A figure is an element of a
Drawing
.
A figure has a set of Handle
s to manipulate its shape or attributes. A figure
has one or more Connector
s that define how to locate a connection point.
Figures can have an open ended set of attributes. An attribute is identified
by an AttributeKey
.
Specialized subinterfaces of Figure allow to compose a figure from several figures, to connect a figure to other figures, to hold text or an image, and to layout a figure.
Drawing
,
Handle
,
Connector
Method Summary | |
---|---|
void |
addFigureListener(FigureListener l)
Adds a listener for FigureEvent's. |
void |
addNotify(Drawing d)
Informs a figure, that it has been added to a drawing. |
boolean |
canConnect()
Checks if this Figure can be connected. |
void |
changed()
Informs that a Figure changed its shape. |
java.lang.Object |
clone()
Returns a clone of the figure, with clones of all aggregated figures, such as chilrend and decorators. |
boolean |
contains(java.awt.geom.Point2D.Double p)
Checks if a point is contained by the figure. |
java.util.Collection<Handle> |
createHandles(int detailLevel)
Creates handles used to manipulate the figure. |
void |
draw(java.awt.Graphics2D g)
Draws the figure. |
Connector |
findCompatibleConnector(Connector c,
boolean isStartConnector)
Gets a compatible connector. |
Connector |
findConnector(java.awt.geom.Point2D.Double p,
ConnectionFigure prototype)
Gets a connector for this figure at the given location. |
Figure |
findFigureInside(java.awt.geom.Point2D.Double p)
Returns the figure that contains the given point. |
java.util.Collection<javax.swing.Action> |
getActions(java.awt.geom.Point2D.Double p)
Returns a collection of Action's for the specified location on the figure. |
java.lang.Object |
getAttribute(AttributeKey key)
Gets an attribute from the Figure. |
java.util.Map<AttributeKey,java.lang.Object> |
getAttributes()
Returns a view to all attributes of this figure. |
java.lang.Object |
getAttributesRestoreData()
Gets data which can be used to restore the attributes of the figure after a setAttribute has been applied to it. |
java.awt.geom.Rectangle2D.Double |
getBounds()
Returns the untransformed logicalbounds of the figure as a Rectangle. |
java.util.Collection<Connector> |
getConnectors(ConnectionFigure prototype)
Returns all connectors of this Figure for the specified prototype of a ConnectionFigure. |
java.awt.Cursor |
getCursor(java.awt.geom.Point2D.Double p)
Returns a cursor for the specified location. |
java.util.Collection<Figure> |
getDecomposition()
Returns a decompositon of a figure into its parts. |
java.awt.geom.Rectangle2D.Double |
getDrawingArea()
Returns the drawing area of the figure as a Rectangle. |
java.awt.geom.Point2D.Double |
getEndPoint()
Returns the untransformed logical end point of the bounds. |
int |
getLayer()
Gets the layer number of the figure. |
Dimension2DDouble |
getPreferredSize()
The preferred size is used by Layouter to determine the preferred size of a Figure. |
java.awt.geom.Point2D.Double |
getStartPoint()
Returns the untransformed logical start point of the bounds. |
Tool |
getTool(java.awt.geom.Point2D.Double p)
Returns a specialized tool for the specified location. |
java.lang.String |
getToolTipText(java.awt.geom.Point2D.Double p)
Returns a tooltip for the specified location on the figure. |
java.lang.Object |
getTransformRestoreData()
Gets data which can be used to restore the transformation of the figure without loss of precision, after a transform has been applied to it. |
boolean |
handleDrop(java.awt.geom.Point2D.Double p,
java.util.Collection<Figure> droppedFigures,
DrawingView view)
Handles a drop. |
boolean |
handleMouseClick(java.awt.geom.Point2D.Double p,
java.awt.event.MouseEvent evt,
DrawingView view)
Handles a mouse click. |
boolean |
includes(Figure figure)
Checks whether the given figure is contained in this figure. |
boolean |
isRemovable()
Returns true, if the user may remove this figure. |
boolean |
isSelectable()
Returns true, if the user may select this figure. |
boolean |
isTransformable()
Returns true, if the user may transform this figure. |
boolean |
isVisible()
A Figure is only drawn by a CompositeFigure, if it is visible. |
void |
remap(java.util.Map<Figure,Figure> oldToNew)
After cloning a collection of figures, the ConnectionFigures contained in this collection still connect to the original figures instead of to the clones. |
void |
removeFigureListener(FigureListener l)
Removes a listener for FigureEvent's. |
void |
removeNotify(Drawing d)
Informs a figure, that it has been removed from a drawing. |
void |
requestRemove()
Fires a FigureListener.figureRequestRemove event. |
void |
restoreAttributesTo(java.lang.Object restoreData)
Restores the attributes of the figure to a previously stored state. |
void |
restoreTransformTo(java.lang.Object restoreData)
Restores the transform of the figure to a previously stored state. |
void |
setAttribute(AttributeKey key,
java.lang.Object value)
Sets an attribute of the figure and calls attributeChanged on all registered FigureListener's. |
void |
setBounds(java.awt.geom.Point2D.Double start,
java.awt.geom.Point2D.Double end)
Sets the logical and untransformed bounds of the figure. |
void |
transform(java.awt.geom.AffineTransform tx)
Transforms the shape of the Figure. |
void |
willChange()
Informs that a Figure is about to change its shape. |
Methods inherited from interface org.jhotdraw.xml.DOMStorable |
---|
read, write |
Method Detail |
---|
void draw(java.awt.Graphics2D g)
g
- The Graphics2D to draw to.int getLayer()
FigureListener.figureChanged
event to
its figure listeners.
boolean isVisible()
void setBounds(java.awt.geom.Point2D.Double start, java.awt.geom.Point2D.Double end)
This is used by Tool's which create a new Figure and by Tool's which connect a Figure to another Figure.
This is a basic operation which does not fire events. Use the following code sequence, if you need event firing:
aFigure.willChange(); aFigure.setBounds(...); aFigure.changed();
start
- the start point of the boundsend
- the end point of the boundsgetBounds()
java.awt.geom.Point2D.Double getStartPoint()
setBounds(java.awt.geom.Point2D.Double, java.awt.geom.Point2D.Double)
java.awt.geom.Point2D.Double getEndPoint()
setBounds(java.awt.geom.Point2D.Double, java.awt.geom.Point2D.Double)
java.awt.geom.Rectangle2D.Double getBounds()
java.awt.geom.Rectangle2D.Double getDrawingArea()
The drawing area needs to be large enough, to take line width, line caps and other decorations into account that exceed the bounds of the Figure.
Dimension2DDouble getPreferredSize()
boolean contains(java.awt.geom.Point2D.Double p)
This is used for hit testing by Tool's.
java.lang.Object getTransformRestoreData()
transform(AffineTransform)
void restoreTransformTo(java.lang.Object restoreData)
void transform(java.awt.geom.AffineTransform tx)
This is a basic operation which does not fire events. Use the following code sequence, if you need event firing:
aFigure.willChange(); aFigure.transform(...); aFigure.changed();
tx
- The transformation.getTransformRestoreData()
,
restoreTransformTo(java.lang.Object)
void setAttribute(AttributeKey key, java.lang.Object value)
This method is not typesafe, you should never call it directly, use
AttributeKey.set
instead.
AttributeKey.set(org.jhotdraw.draw.Figure, T)
java.lang.Object getAttribute(AttributeKey key)
This method is not typesafe, you should never call it directly, use
AttributeKey.get
instead.
AttributeKey.get(org.jhotdraw.draw.Figure)
java.util.Map<AttributeKey,java.lang.Object> getAttributes()
java.lang.Object getAttributesRestoreData()
void restoreAttributesTo(java.lang.Object restoreData)
boolean isSelectable()
Please note, that even if this method returns false, the Figure may become part of a selection for other reasons. For example, if the Figure is part of a GroupFigure, then the Figure is indirectly part of the selection, when the user selects the GroupFigure.
boolean isRemovable()
Please note, that even if this method returns false, the Figure may be removed from the Drawing for other reasons. For example, if the Figure is used to display a warning message, the Figure can be removed from the Drawing, when the warning message is no longer relevant.
boolean isTransformable()
Please note, that even if this method returns false, the Figure may be transformed for other reasons. For example, if the Figure takes part in an animation.
transform(java.awt.geom.AffineTransform)
java.util.Collection<Handle> createHandles(int detailLevel)
detailLevel
- The detail level of the handles. Usually this is 0 for
bounding box handles and 1 for point handles.
Handle
java.awt.Cursor getCursor(java.awt.geom.Point2D.Double p)
java.util.Collection<javax.swing.Action> getActions(java.awt.geom.Point2D.Double p)
The collection may contain null entries. These entries are used interpreted as separators in the popup menu.
Actions can use the property Figure.ACTION_SUBMENU to specify a submenu.
Tool getTool(java.awt.geom.Point2D.Double p)
Returns null, if no specialized tool is available.
java.lang.String getToolTipText(java.awt.geom.Point2D.Double p)
boolean canConnect()
Connector findConnector(java.awt.geom.Point2D.Double p, ConnectionFigure prototype)
p
- the location of the connector.prototype
- The prototype used to create a connection or null if
unknown. This allows for specific connectors for different
connection figures.Connector findCompatibleConnector(Connector c, boolean isStartConnector)
java.util.Collection<Connector> getConnectors(ConnectionFigure prototype)
This is used by connection tools and connection handles to visualize the connectors when the user is about to create a ConnectionFigure to this Figure.
prototype
- The prototype used to create a connection or null if
unknown. This allows for specific connectors for different
connection figures.boolean includes(Figure figure)
Figure findFigureInside(java.awt.geom.Point2D.Double p)
java.util.Collection<Figure> getDecomposition()
java.lang.Object clone()
void remap(java.util.Map<Figure,Figure> oldToNew)
void addNotify(Drawing d)
void removeNotify(Drawing d)
void willChange()
willChange
and changed
are typically used
as pairs before and after invoking one or multiple basic-methods on
the Figure.
void changed()
FigureListener.figureChanged
event for the current display bounds of the figure.
willChange()
void requestRemove()
FigureListener.figureRequestRemove
event.
boolean handleDrop(java.awt.geom.Point2D.Double p, java.util.Collection<Figure> droppedFigures, DrawingView view)
p
- The location of the mouse event.droppedFigures
- The dropped figures.view
- The drawing view which is the source of the mouse event.
boolean handleMouseClick(java.awt.geom.Point2D.Double p, java.awt.event.MouseEvent evt, DrawingView view)
p
- The location of the mouse event.evt
- The mouse event.view
- The drawing view which is the source of the mouse event.
void addFigureListener(FigureListener l)
void removeFigureListener(FigureListener l)
|
Copyright 1996-2007 (c) JHotDraw.org. Some rights reserved. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |