Package diva.canvas
Class SiteDecorator
- java.lang.Object
-
- diva.canvas.SiteDecorator
-
- All Implemented Interfaces:
Site
- Direct Known Subclasses:
FixedNormalSite
public class SiteDecorator extends java.lang.Object implements Site
This is an abstract decorator for sites. It can be used to add or change the functionality of an arbitrary site.- Version:
- $Id$
- Author:
- Steve Neuendorffer
- Pt.AcceptedRating:
- Red
-
-
Constructor Summary
Constructors Constructor Description SiteDecorator(Site site)Create a new decorator on the given site.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description FiguregetFigure()Get the figure to which this site is attached.intgetID()Get the ID of this site.doublegetNormal()Get the angle of the normal to this site, in radians between zero and 2pi.java.awt.geom.Point2DgetPoint()Get the point location of the site, in the enclosing transform context with default normal.java.awt.geom.Point2DgetPoint(double normal)Get the point location of the site, in the enclosing transform context with the given normal.java.awt.geom.Point2DgetPoint(TransformContext tc)Get the point location of the site, in the given transform context with the default normal.java.awt.geom.Point2DgetPoint(TransformContext tc, double normal)Get the point location of the site, in the given transform context with the given normal.TransformContextgetTransformContext()Get the enclosing transform context of this site.doublegetX()Get the x-coordinate of the site, in the enclosing transform context.doublegetY()Get the y-coordinate of the site, in the enclosing transform context.booleanhasNormal()Test if this site has a "normal" to it.booleanisNormal(int direction)Test if this site has a normal in the given direction.voidsetNormal(double normal)Set the normal "out" of the site.voidtranslate(double x, double y)Translate the site by the indicated distance, where distances are in the local coordinates of the containing pane.
-
-
-
Constructor Detail
-
SiteDecorator
public SiteDecorator(Site site)
Create a new decorator on the given site.- Parameters:
site- The site.
-
-
Method Detail
-
getFigure
public Figure getFigure()
Get the figure to which this site is attached. Usually, this will return a valid Figure, but clients must be aware that certain types of site may return null.
-
getID
public int getID()
Get the ID of this site. Within each figure, the IDs of the sites must be unique.
-
getNormal
public double getNormal()
Get the angle of the normal to this site, in radians between zero and 2pi. The direction is "out" of the site. The result is meaningful only if hasNormal() returns true.- Specified by:
getNormalin interfaceSite- Returns:
- The normal.
- See Also:
setNormal(double)
-
getPoint
public java.awt.geom.Point2D getPoint()
Get the point location of the site, in the enclosing transform context with default normal.
-
getPoint
public java.awt.geom.Point2D getPoint(TransformContext tc)
Get the point location of the site, in the given transform context with the default normal. The given context must be an enclosing context of the site.
-
getPoint
public java.awt.geom.Point2D getPoint(double normal)
Get the point location of the site, in the enclosing transform context with the given normal.
-
getPoint
public java.awt.geom.Point2D getPoint(TransformContext tc, double normal)
Get the point location of the site, in the given transform context with the given normal. The given context must be an enclosing context of the site.
-
getTransformContext
public TransformContext getTransformContext()
Get the enclosing transform context of this site.- Specified by:
getTransformContextin interfaceSite- Returns:
- The transform context
-
getX
public double getX()
Get the x-coordinate of the site, in the enclosing transform context.
-
getY
public double getY()
Get the y-coordinate of the site, in the enclosing transform context.
-
hasNormal
public boolean hasNormal()
Test if this site has a "normal" to it. The normal is accessible by the methods getNormal() and isNormal(). Generally, sites on the boundary of a shape will return true to this method, and sites in the center of an object will return false.
-
isNormal
public boolean isNormal(int direction)
Test if this site has a normal in the given direction. The direction is that given by one of the static constants NORTH, SOUTH, EAST, or WEST, defined in javax.swing.SwingConstants
-
setNormal
public void setNormal(double normal)
Set the normal "out" of the site. If the site cannot change its normal, it can ignore this call, so clients that care should always check the normal after calling. If the site can change its normal, it can also change its position. For example, a site on the perimeter of a figure may move to a different position.- Specified by:
setNormalin interfaceSite- Parameters:
normal- The normal.- See Also:
getNormal()
-
translate
public void translate(double x, double y)Translate the site by the indicated distance, where distances are in the local coordinates of the containing pane. Usually, this will mean that the figure is reshaped so that the site moves the given distance. If the site cannot be moved the given distance, then either do nothing, or move it part of the distance. Clients are expected to check the new location of the site.
-
-