JHotDraw 7.5.1

org.jhotdraw.draw
Class QuadTreeCompositeFigure

java.lang.Object
  extended by org.jhotdraw.beans.AbstractBean
      extended by org.jhotdraw.draw.AbstractFigure
          extended by org.jhotdraw.draw.AbstractCompositeFigure
              extended by org.jhotdraw.draw.QuadTreeCompositeFigure
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, CompositeFigure, Figure, DOMStorable

public abstract class QuadTreeCompositeFigure
extends AbstractCompositeFigure

QuadTreeCompositeFigure.

Version:
$Id: QuadTreeCompositeFigure.java 658 2010-06-26 11:31:53Z rawcoder $
Author:
Werner Randelshofer
See Also:
Serialized Form

Nested Class Summary
protected  class QuadTreeCompositeFigure.FigureHandler
          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
QuadTreeCompositeFigure()
          Creates a new instance.
 
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.
 boolean contains(Figure f)
          Returns true if this composite figure contains the specified figure.
protected  QuadTreeCompositeFigure.FigureHandler createFigureHandler()
           
 void draw(java.awt.Graphics2D g)
          Draws the figure.
 void draw(java.awt.Graphics2D g, java.util.Collection<Figure> c)
           
 Figure findFigure(java.awt.geom.Point2D.Double p)
           
 Figure findFigureBehind(java.awt.geom.Point2D.Double p, java.util.Collection<Figure> figures)
           
 Figure findFigureBehind(java.awt.geom.Point2D.Double p, Figure figure)
           
 Figure findFigureExcept(java.awt.geom.Point2D.Double p, java.util.Collection ignore)
           
 Figure findFigureExcept(java.awt.geom.Point2D.Double p, Figure ignore)
           
 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)
           
 java.util.List<Figure> findFiguresWithin(java.awt.geom.Rectangle2D.Double bounds)
           
 Dimension2DDouble getCanvasSize()
           
 java.util.List<Figure> getChildren()
          Returns an unchangeable list view on the children.
 java.util.List<Figure> getFigures(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.
 void setCanvasSize(Dimension2DDouble newValue)
           
 java.util.List<Figure> sort(java.util.Collection<Figure> c)
          Implementation note: Sorting can not be done for orphaned children.
 
Methods inherited from class org.jhotdraw.draw.AbstractCompositeFigure
add, add, addAll, addAll, addCompositeFigureListener, addNotify, basicAdd, basicAddAll, basicRemove, basicRemoveAll, basicRemoveAllChildren, changed, clone, contains, createEventHandler, createHandles, findChild, findChildIndex, fireFigureAdded, fireFigureRemoved, get, getAttributes, getAttributesRestoreData, getBounds, getChild, getChildCount, getChildrenFrontToBack, getDecomposition, getDrawingArea, getLayouter, getPreferredSize, getTransformRestoreData, invalidate, layout, read, remove, removeAll, removeAllChildren, removeChild, removeCompositeFigureListener, removeNotify, restoreAttributesTo, restoreTransformTo, set, setBounds, setLayouter, transform, validate, willChange, write
 
Methods inherited from class org.jhotdraw.draw.AbstractFigure
addFigureListener, basicClone, findCompatibleConnector, findConnector, fireAreaInvalidated, fireAreaInvalidated, fireAreaInvalidated, fireAttributeChanged, fireFigureAdded, fireFigureChanged, fireFigureChanged, fireFigureChanged, fireFigureHandlesChanged, fireFigureRemoved, fireFigureRequestRemove, fireUndoableEditHappened, getActions, getChangingDepth, getConnectors, getCursor, getDrawing, getEndPoint, getFontRenderContext, getLayer, getLock, getStartPoint, getTool, getToolTipText, handleDrop, handleMouseClick, includes, isChanging, isConnectable, isRemovable, isSelectable, isTransformable, isVisible, remap, removeFigureListener, requestRemove, setBounds, setConnectable, setRemovable, setSelectable, setTransformable, setVisible, toString
 
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.Figure
addFigureListener, addPropertyChangeListener, findCompatibleConnector, findConnector, getActions, getConnectors, getCursor, getEndPoint, getLayer, getStartPoint, getTool, getToolTipText, handleDrop, handleMouseClick, includes, isConnectable, isRemovable, isSelectable, isTransformable, isVisible, remap, removeFigureListener, removePropertyChangeListener, requestRemove
 

Constructor Detail

QuadTreeCompositeFigure

public QuadTreeCompositeFigure()
Creates a new instance.

Method Detail

createFigureHandler

protected QuadTreeCompositeFigure.FigureHandler createFigureHandler()

indexOf

public int indexOf(Figure figure)
Description copied from interface: CompositeFigure
Returns the index of the specified child.

This is a convenience method for calling getChildren().indexOf(index);.

Specified by:
indexOf in interface CompositeFigure
Overrides:
indexOf in class AbstractCompositeFigure
Returns:
The index of the child, or -1 if the specified figure is not a child of this CompositeFigure.

basicAdd

public void basicAdd(int index,
                     Figure figure)
Description copied from interface: CompositeFigure
Adds a child to the figure at the specified index without firing events.

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.

Specified by:
basicAdd in interface CompositeFigure
Overrides:
basicAdd in class AbstractCompositeFigure

basicRemoveChild

public Figure basicRemoveChild(int index)
Description copied from interface: CompositeFigure
Removes the child at the specified index without firing events.

This 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.

Specified by:
basicRemoveChild in interface CompositeFigure
Overrides:
basicRemoveChild in class AbstractCompositeFigure

draw

public void draw(java.awt.Graphics2D g)
Description copied from interface: Figure
Draws the figure.

Specified by:
draw in interface Figure
Overrides:
draw in class AbstractCompositeFigure
Parameters:
g - The Graphics2D to draw to.

sort

public java.util.List<Figure> sort(java.util.Collection<Figure> c)
Implementation note: Sorting can not be done for orphaned children.


draw

public void draw(java.awt.Graphics2D g,
                 java.util.Collection<Figure> c)

getFigures

public java.util.List<Figure> getFigures(java.awt.geom.Rectangle2D.Double bounds)

getChildren

public java.util.List<Figure> getChildren()
Description copied from interface: CompositeFigure
Returns an unchangeable list view on the children.

Specified by:
getChildren in interface CompositeFigure
Overrides:
getChildren in class AbstractCompositeFigure

findFigureInside

public Figure findFigureInside(java.awt.geom.Point2D.Double p)
Description copied from interface: Figure
Finds the innermost figure at the specified location.

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.

Specified by:
findFigureInside in interface Figure
Overrides:
findFigureInside in class AbstractCompositeFigure
Parameters:
p - A location on the drawing.
Returns:
Returns the innermost figure at the location, or null if the location is not contained in a figure.

getFiguresFrontToBack

public java.util.List<Figure> getFiguresFrontToBack()
Returns an iterator to iterate in Z-order front to back over the children.


findFigure

public Figure findFigure(java.awt.geom.Point2D.Double p)

findFigureExcept

public Figure findFigureExcept(java.awt.geom.Point2D.Double p,
                               Figure ignore)

findFigureExcept

public Figure findFigureExcept(java.awt.geom.Point2D.Double p,
                               java.util.Collection ignore)

findFigureBehind

public Figure findFigureBehind(java.awt.geom.Point2D.Double p,
                               Figure figure)

findFigureBehind

public Figure findFigureBehind(java.awt.geom.Point2D.Double p,
                               java.util.Collection<Figure> figures)

findFigures

public java.util.List<Figure> findFigures(java.awt.geom.Rectangle2D.Double r)

findFiguresWithin

public java.util.List<Figure> findFiguresWithin(java.awt.geom.Rectangle2D.Double bounds)

bringToFront

public void bringToFront(Figure figure)
Description copied from class: AbstractCompositeFigure
Brings a figure to the front of the drawing.

Overrides:
bringToFront in class AbstractCompositeFigure
Parameters:
figure - that is part of the drawing

sendToBack

public void sendToBack(Figure figure)
Description copied from class: AbstractCompositeFigure
Sends a figure to the back of the composite figure.

Overrides:
sendToBack in class AbstractCompositeFigure
Parameters:
figure - that is part of this composite figure

contains

public boolean contains(Figure f)
Description copied from interface: CompositeFigure
Returns true if this composite figure contains the specified figure.

This is a convenience method for calling getChildren().contains(f);.

Specified by:
contains in interface CompositeFigure
Overrides:
contains in class AbstractCompositeFigure

setCanvasSize

public void setCanvasSize(Dimension2DDouble newValue)

getCanvasSize

public Dimension2DDouble getCanvasSize()

Copyright 1996-2010 (c) by the authors and contributors of the JHotDraw project.
Some rights reserved.