public class SVGPathFigure extends AbstractAttributedCompositeFigure implements SVGFigure
AbstractCompositeFigure.EventHandler
cachedBounds, cachedDrawingArea, children, eventHandler, layouter
changingDepth, listenerList
propertySupport
CONNECTABLE_PROPERTY, REMOVABLE_PROPERTY, SELECTABLE_PROPERTY, TRANSFORMABLE_PROPERTY
LAYOUT_INSETS
Constructor and Description |
---|
SVGPathFigure()
Creates a new instance.
|
SVGPathFigure(boolean isEmpty) |
Modifier and Type | Method and Description |
---|---|
void |
add(int index,
Figure figure)
Adds a child to the figure at the specified index.
|
SVGPathFigure |
clone()
Returns a clone of the figure, with clones of all aggregated figures,
such as children 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.
|
protected void |
drawChildren(java.awt.Graphics2D g) |
void |
drawFigure(java.awt.Graphics2D g) |
void |
drawFill(java.awt.Graphics2D g)
This method is called by method draw() to draw the fill
area of the figure.
|
void |
drawStroke(java.awt.Graphics2D g)
This method is called by method draw() to draw the text of the figure
.
|
void |
flattenTransform() |
java.util.Collection<javax.swing.Action> |
getActions(java.awt.geom.Point2D.Double p)
Returns a collection of actions which are presented to the user
in a popup menu.
|
SVGBezierFigure |
getChild(int index)
Returns the child figure at the specified index.
|
java.awt.geom.Rectangle2D.Double |
getDrawingArea()
Returns the drawing area of the figure as a Rectangle.
|
protected java.awt.Shape |
getHitShape() |
protected java.awt.geom.Path2D.Double |
getPath() |
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 |
handleMouseClick(java.awt.geom.Point2D.Double p,
java.awt.event.MouseEvent evt,
DrawingView view)
Handles a mouse click.
|
protected void |
invalidate()
Invalidates cached data of the Figure.
|
boolean |
isEmpty()
Returns true, if this figure is empty for one of the following
reasons:
A group has no children
A path has less than two points
An ellipse or a rectangle has a width or a height of 0
A text has no characters
|
void |
restoreTransformTo(java.lang.Object geometry)
Restores the transform of the figure to a previously stored state.
|
<T> void |
set(AttributeKey<T> key,
T newValue)
Sets an attribute of the figure.
|
void |
setBounds(java.awt.geom.Point2D.Double anchor,
java.awt.geom.Point2D.Double lead)
Sets the logical and untransformed bounds of the figure.
|
void |
transform(java.awt.geom.AffineTransform tx)
Transforms the figure.
|
applyAttributesTo, drawText, get, getAttributeKey, getAttributes, getAttributesRestoreData, getFigureDrawBounds, getStroke, getStrokeMiterLimitFactor, hasAttribute, isAttributeEnabled, read, readAttributes, removeAttribute, restoreAttributesTo, setAttributeEnabled, setAttributeOnChildren, setAttributes, write, writeAttributes
add, addAll, addAll, addCompositeFigureListener, addNotify, basicAdd, basicAdd, basicAddAll, basicRemove, basicRemoveAll, basicRemoveAllChildren, basicRemoveChild, bringToFront, changed, contains, createEventHandler, findChild, findChildIndex, findFigureInside, fireFigureAdded, fireFigureRemoved, getBounds, getChildCount, getChildren, getChildrenFrontToBack, getDecomposition, getLayouter, getPreferredSize, indexOf, layout, remove, removeAll, removeAllChildren, removeChild, removeCompositeFigureListener, removeNotify, sendToBack, setLayouter, validate, willChange
addFigureListener, findCompatibleConnector, findConnector, fireAreaInvalidated, fireAreaInvalidated, fireAreaInvalidated, fireAttributeChanged, fireFigureAdded, fireFigureChanged, fireFigureChanged, fireFigureChanged, fireFigureHandlesChanged, fireFigureRemoved, fireFigureRequestRemove, fireUndoableEditHappened, getChangingDepth, getConnectors, getCursor, getDrawing, getEndPoint, getFontRenderContext, getLayer, getLock, getStartPoint, getTool, getToolTipText, handleDrop, includes, isChanging, isConnectable, isRemovable, isSelectable, isTransformable, isVisible, remap, removeFigureListener, requestRemove, setBounds, setConnectable, setRemovable, setSelectable, setTransformable, setVisible, toString
addPropertyChangeListener, addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addFigureListener, addNotify, addPropertyChangeListener, changed, findCompatibleConnector, findConnector, findFigureInside, get, getAttributes, getAttributesRestoreData, getBounds, getConnectors, getCursor, getDecomposition, getEndPoint, getLayer, getPreferredSize, getStartPoint, getTool, getToolTipText, handleDrop, includes, isConnectable, isRemovable, isSelectable, isTransformable, isVisible, remap, removeFigureListener, removeNotify, removePropertyChangeListener, requestRemove, restoreAttributesTo, willChange
public SVGPathFigure()
public SVGPathFigure(boolean isEmpty)
public void draw(java.awt.Graphics2D g)
Figure
draw
in interface Figure
draw
in class AbstractCompositeFigure
g
- The Graphics2D to draw to.public void drawFigure(java.awt.Graphics2D g)
drawFigure
in class AbstractAttributedCompositeFigure
protected void drawChildren(java.awt.Graphics2D g)
drawChildren
in class AbstractAttributedCompositeFigure
public void drawFill(java.awt.Graphics2D g)
AbstractAttributedCompositeFigure
drawFill
in class AbstractAttributedCompositeFigure
public void drawStroke(java.awt.Graphics2D g)
AbstractAttributedCompositeFigure
drawStroke
in class AbstractAttributedCompositeFigure
protected void invalidate()
AbstractFigure
invalidate
in class AbstractCompositeFigure
protected java.awt.geom.Path2D.Double getPath()
protected java.awt.Shape getHitShape()
public java.awt.geom.Rectangle2D.Double getDrawingArea()
Figure
The drawing area is used to inform DrawingView
about the
area that is needed to draw this figure.
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.
getDrawingArea
in interface Figure
getDrawingArea
in class AbstractCompositeFigure
public boolean contains(java.awt.geom.Point2D.Double p)
Figure
This is used for hit testing by Tool's.
contains
in interface Figure
contains
in class AbstractCompositeFigure
public void setBounds(java.awt.geom.Point2D.Double anchor, java.awt.geom.Point2D.Double lead)
Figure
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:
figure.willChange(); figure.setBounds(...); figure.changed();
setBounds
in interface Figure
setBounds
in class AbstractCompositeFigure
anchor
- the start point of the boundslead
- the end point of the boundsFigure.getBounds()
public void transform(java.awt.geom.AffineTransform tx)
AbstractCompositeFigure
transform
in interface Figure
transform
in class AbstractCompositeFigure
tx
- The transformation.Figure.getTransformRestoreData()
,
Figure.restoreTransformTo(java.lang.Object)
public void restoreTransformTo(java.lang.Object geometry)
Figure
restoreTransformTo
in interface Figure
restoreTransformTo
in class AbstractCompositeFigure
public java.lang.Object getTransformRestoreData()
Figure
getTransformRestoreData
in interface Figure
getTransformRestoreData
in class AbstractCompositeFigure
Figure.transform(AffineTransform)
public <T> void set(AttributeKey<T> key, T newValue)
AbstractAttributedCompositeFigure
set
in interface Figure
set
in class AbstractAttributedCompositeFigure
AttributeKey.set(org.jhotdraw.draw.Figure, T)
public boolean isEmpty()
SVGFigure
public java.util.Collection<Handle> createHandles(int detailLevel)
Figure
createHandles
in interface Figure
createHandles
in class AbstractCompositeFigure
detailLevel
- The detail level of the handles. Usually this is 0 for
bounding box handles and 1 for point handles. The value -1 is used
by the SelectAreaTracker and the HandleTracker to highlight figures, over which the mouse
pointer is hovering.Handle
public java.util.Collection<javax.swing.Action> getActions(java.awt.geom.Point2D.Double p)
AbstractFigure
The collection may contain null entries. These entries are used interpreted as separators in the popup menu.
getActions
in interface Figure
getActions
in class AbstractFigure
public boolean handleMouseClick(java.awt.geom.Point2D.Double p, java.awt.event.MouseEvent evt, DrawingView view)
handleMouseClick
in interface Figure
handleMouseClick
in class AbstractFigure
p
- The location of the mouse event.evt
- The mouse event.view
- The drawing view which is the source of the mouse event.public void add(int index, Figure figure)
CompositeFigure
This method calls figureAdded
on all registered
CompositeFigureListener
s.
add
in interface CompositeFigure
add
in class AbstractCompositeFigure
public SVGBezierFigure getChild(int index)
CompositeFigure
This is a convenience method for calling
getChildren().get(index);
.
getChild
in interface CompositeFigure
getChild
in class AbstractCompositeFigure
public SVGPathFigure clone()
Figure
clone
in interface Figure
clone
in class AbstractAttributedCompositeFigure
public void flattenTransform()