|
JHotDraw 7.5.1 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.jhotdraw.beans.AbstractBean
org.jhotdraw.draw.AbstractFigure
org.jhotdraw.draw.AbstractCompositeFigure
org.jhotdraw.draw.AbstractAttributedCompositeFigure
org.jhotdraw.draw.AbstractDrawing
org.jhotdraw.draw.QuadTreeDrawing
public class QuadTreeDrawing
An implementation of Drawing which uses a
QuadTree to provide a good responsiveness for
drawings which contain many figures.
| Nested Class Summary | |
|---|---|
protected class |
QuadTreeDrawing.QuadTreeEventHandler
Handles all figure events fired by Figures contained in the Drawing. |
| Nested classes/interfaces inherited from class org.jhotdraw.draw.AbstractCompositeFigure |
|---|
AbstractCompositeFigure.EventHandler |
| Field Summary |
|---|
| Fields inherited from class org.jhotdraw.draw.AbstractCompositeFigure |
|---|
cachedBounds, cachedDrawingArea, children, eventHandler, layouter |
| Fields inherited from class org.jhotdraw.draw.AbstractFigure |
|---|
changingDepth, listenerList |
| Fields inherited from class org.jhotdraw.beans.AbstractBean |
|---|
propertySupport |
| Fields inherited from interface org.jhotdraw.draw.CompositeFigure |
|---|
LAYOUT_INSETS |
| Fields inherited from interface org.jhotdraw.draw.Figure |
|---|
CONNECTABLE_PROPERTY, REMOVABLE_PROPERTY, SELECTABLE_PROPERTY, TRANSFORMABLE_PROPERTY |
| Constructor Summary | |
|---|---|
QuadTreeDrawing()
|
|
| Method Summary | |
|---|---|
void |
basicAdd(int index,
Figure figure)
Adds a child to the figure at the specified index without firing events. |
Figure |
basicRemoveChild(int index)
Removes the child at the specified index without firing events. |
void |
bringToFront(Figure figure)
Brings a figure to the front of the drawing. |
QuadTreeDrawing |
clone()
Returns a clone of the figure, with clones of all aggregated figures, such as children and decorators. |
boolean |
contains(Figure f)
Returns true if this composite figure contains the specified figure. |
protected AbstractCompositeFigure.EventHandler |
createEventHandler()
|
void |
draw(java.awt.Graphics2D g)
Draws the figure. |
void |
draw(java.awt.Graphics2D g,
java.util.Collection<Figure> c)
|
void |
drawCanvas(java.awt.Graphics2D g)
Draws on the canvas area. |
protected void |
drawFill(java.awt.Graphics2D g)
This method is called by method draw() to draw the fill area of the figure. |
protected void |
drawStroke(java.awt.Graphics2D g)
This method is called by method draw() to draw the text of the figure . |
Figure |
findFigure(java.awt.geom.Point2D.Double p)
Finds a top level Figure. |
Figure |
findFigureBehind(java.awt.geom.Point2D.Double p,
java.util.Collection<? extends Figure> children)
Finds a top level Figure which is behind the specified Figures. |
Figure |
findFigureBehind(java.awt.geom.Point2D.Double p,
Figure figure)
Finds a top level Figure which is behind the specified Figure. |
Figure |
findFigureExcept(java.awt.geom.Point2D.Double p,
java.util.Collection<? extends Figure> ignore)
Finds a top level Figure. |
Figure |
findFigureExcept(java.awt.geom.Point2D.Double p,
Figure ignore)
Finds a top level Figure. |
Figure |
findFigureInside(java.awt.geom.Point2D.Double p)
Finds the innermost figure at the specified location. |
java.util.List<Figure> |
findFigures(java.awt.geom.Rectangle2D.Double r)
Returns all figures that lie within or intersect the specified bounds. |
java.util.List<Figure> |
findFiguresWithin(java.awt.geom.Rectangle2D.Double bounds)
Returns all figures that lie within the specified bounds. |
java.util.List<Figure> |
getChildren()
Returns an unchangeable list view on the children. |
java.util.List<Figure> |
getChildren(java.awt.geom.Rectangle2D.Double bounds)
|
java.util.List<Figure> |
getFiguresFrontToBack()
Returns an iterator to iterate in Z-order front to back over the children. |
int |
indexOf(Figure figure)
Returns the index of the specified child. |
void |
sendToBack(Figure figure)
Sends a figure to the back of the composite figure. |
protected void |
setAttributeOnChildren(AttributeKey key,
java.lang.Object newValue)
|
java.util.List<Figure> |
sort(java.util.Collection<? extends Figure> c)
Implementation note: Sorting can not be done for orphaned children. |
| Methods inherited from class org.jhotdraw.draw.AbstractDrawing |
|---|
addInputFormat, addOutputFormat, addUndoableEditListener, fireUndoableEditHappened, getDrawing, getFontRenderContext, getInputFormats, getLock, getOutputFormats, read, removeUndoableEditListener, setFontRenderContext, setInputFormats, setOutputFormats, write |
| Methods inherited from class org.jhotdraw.draw.AbstractAttributedCompositeFigure |
|---|
applyAttributesTo, drawChildren, drawFigure, drawText, get, getAttributeKey, getAttributes, getAttributesRestoreData, getFigureDrawBounds, getStroke, getStrokeMiterLimitFactor, hasAttribute, isAttributeEnabled, readAttributes, removeAttribute, restoreAttributesTo, set, setAttributeEnabled, setAttributes, writeAttributes |
| Methods inherited from class org.jhotdraw.beans.AbstractBean |
|---|
addPropertyChangeListener, addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.jhotdraw.draw.Drawing |
|---|
add, add, addAll, addAll, basicAdd, basicAddAll, basicRemove, basicRemoveAll, remove, removeAll |
| Methods inherited from interface org.jhotdraw.draw.CompositeFigure |
|---|
addCompositeFigureListener, basicRemoveAllChildren, getChild, getChildCount, getLayouter, layout, removeAllChildren, removeChild, removeCompositeFigureListener, setLayouter |
| Constructor Detail |
|---|
public QuadTreeDrawing()
| Method Detail |
|---|
public int indexOf(Figure figure)
CompositeFigure
This is a convenience method for calling
getChildren().indexOf(index);.
indexOf in interface CompositeFigureindexOf in class AbstractCompositeFigure
public void basicAdd(int index,
Figure figure)
CompositeFigure
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.
basicAdd in interface CompositeFigurebasicAdd in interface DrawingbasicAdd in class AbstractCompositeFigurefigure - that is part of the drawing and should be removedDrawing.basicRemove(Figure)public Figure basicRemoveChild(int index)
CompositeFigureThis 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.
basicRemoveChild in interface CompositeFigurebasicRemoveChild in class AbstractCompositeFigurepublic void draw(java.awt.Graphics2D g)
Figure
draw in interface Figuredraw in class AbstractCompositeFigureg - The Graphics2D to draw to.public java.util.List<Figure> sort(java.util.Collection<? extends Figure> c)
public void draw(java.awt.Graphics2D g,
java.util.Collection<Figure> c)
public java.util.List<Figure> getChildren(java.awt.geom.Rectangle2D.Double bounds)
public java.util.List<Figure> getChildren()
CompositeFigure
getChildren in interface CompositeFiguregetChildren in class AbstractCompositeFigurepublic Figure findFigureInside(java.awt.geom.Point2D.Double p)
Figure
In case of a CompositeFigure, this method descends into its
children and into its children's children until the innermost figure is
found.
This functionality is implemented using the Chain of Responsibility design pattern. A figure which is not composed of other figures returns itself if the point is contained by the figure. Composed figures pass the method call down to their children.
findFigureInside in interface DrawingfindFigureInside in interface FigurefindFigureInside in class AbstractCompositeFigurep - A location on the drawing.
public java.util.List<Figure> getFiguresFrontToBack()
public Figure findFigure(java.awt.geom.Point2D.Double p)
Drawing
Use Drawing.findFigureInside(java.awt.geom.Point2D.Double) If you need to descend into children of
composite figures.
public Figure findFigureExcept(java.awt.geom.Point2D.Double p,
Figure ignore)
Drawing
public Figure findFigureExcept(java.awt.geom.Point2D.Double p,
java.util.Collection<? extends Figure> ignore)
Drawing
public Figure findFigureBehind(java.awt.geom.Point2D.Double p,
Figure figure)
Drawing
public Figure findFigureBehind(java.awt.geom.Point2D.Double p,
java.util.Collection<? extends Figure> children)
Drawing
public java.util.List<Figure> findFigures(java.awt.geom.Rectangle2D.Double r)
Drawing
public java.util.List<Figure> findFiguresWithin(java.awt.geom.Rectangle2D.Double bounds)
Drawing
public void bringToFront(Figure figure)
AbstractCompositeFigure
bringToFront in interface DrawingbringToFront in class AbstractCompositeFigurefigure - that is part of the drawingpublic void sendToBack(Figure figure)
AbstractCompositeFigure
sendToBack in interface DrawingsendToBack in class AbstractCompositeFigurefigure - that is part of this composite figurepublic boolean contains(Figure f)
CompositeFigure
This is a convenience method for calling
getChildren().contains(f);.
contains in interface CompositeFigurecontains in class AbstractCompositeFigure
protected void setAttributeOnChildren(AttributeKey key,
java.lang.Object newValue)
setAttributeOnChildren in class AbstractAttributedCompositeFigurepublic QuadTreeDrawing clone()
Figure
clone in interface Figureclone in class AbstractDrawingprotected AbstractCompositeFigure.EventHandler createEventHandler()
createEventHandler in class AbstractCompositeFigureprotected void drawFill(java.awt.Graphics2D g)
AbstractAttributedCompositeFigure
drawFill in class AbstractAttributedCompositeFigureprotected void drawStroke(java.awt.Graphics2D g)
AbstractAttributedCompositeFigure
drawStroke in class AbstractAttributedCompositeFigurepublic void drawCanvas(java.awt.Graphics2D g)
Drawing
By convention this method is only invoked by DrawingView.
AttributeKeys defines a number of attribute keys which can be
used to determine what to draw on the canvas.
|
Copyright 1996-2010 (c) by the authors and contributors of the JHotDraw project. Some rights reserved. |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||