org.opensourcephysics.display
Class BoundedShape

java.lang.Object
  extended by org.opensourcephysics.display.AbstractInteractive
      extended by org.opensourcephysics.display.InteractiveShape
          extended by org.opensourcephysics.display.BoundedShape
All Implemented Interfaces:
Drawable, Interactive, Measurable, Selectable
Direct Known Subclasses:
BoundedImage, InteractiveArrow, InteractiveCenteredArrow

public class BoundedShape
extends InteractiveShape
implements Selectable


Nested Class Summary
protected static class BoundedShape.BoundedShapeLoader
          A class to save and load BoundedShape in an XMLControl.
 
Nested classes/interfaces inherited from class org.opensourcephysics.display.InteractiveShape
InteractiveShape.InteractiveShapeLoader
 
Field Summary
 
Fields inherited from class org.opensourcephysics.display.InteractiveShape
edgeColor, height, pixelSized, shape, shapeClass, theta, width, xoff, yoff
 
Fields inherited from class org.opensourcephysics.display.AbstractInteractive
color, x, y
 
Constructor Summary
BoundedShape(java.awt.Shape s, double x, double y)
          Constructs a BoundedShape object for the given shape.
 
Method Summary
static BoundedShape createBoundedArrow(double x, double y, double w, double h)
          Creates a bounded arrow.
static BoundedShape createBoundedCenteredArrow(double x, double y, double w, double h)
          Creates a bounded arrow.
static BoundedShape createBoundedCircle(double x, double y, double d)
          Creates a bounded circle.
static BoundedShape createBoundedEllipse(double x, double y, double w, double h)
          Creates a bounded ellipse.
static BoundedShape createBoundedImage(java.awt.Image image, double x, double y)
          Creates a bounded image.
static BoundedShape createBoundedRectangle(double x, double y, double w, double h)
          Creates a bounded rectangle.
static BoundedShape createBoundedTriangle(double x, double y, double b, double h)
          Creates a bounded rectangle.
 void draw(DrawingPanel panel, java.awt.Graphics g)
          Draws the shape.
 Interactive findInteractive(DrawingPanel panel, int xpix, int ypix)
          Finds the interactive object that will respond to mouse actions.
static XML.ObjectLoader getLoader()
          Gets the XML object loader for this class.
 java.awt.Cursor getPreferredCursor()
           
 boolean isHeightDrag()
          Gets the height drag option.
 boolean isInside(DrawingPanel panel, int xpix, int ypix)
          Determines if the shape is enabled and if the given pixel coordinates are within the shape.
 boolean isRotateDrag()
          Gets the rotate drag option.
 boolean isSelected()
           
 boolean isWidthDrag()
          Gets the width width drag option.
 boolean isXYDrag()
          Gets the xy drag boolean.
 void setHeightDrag(boolean enable)
          Sets the height drag option.
 void setRotateDrag(boolean enable)
          Sets the rotate drag option.
 void setSelected(boolean selected)
           
 void setWidthDrag(boolean enable)
          Sets the width drag option.
 void setXYDrag(boolean enable)
          Sets the xy drag option.
 void toggleSelected()
           
 java.lang.String toString()
          Gets a description of this object.
 
Methods inherited from class org.opensourcephysics.display.InteractiveShape
contains, createArrow, createCenteredArrow, createCircle, createEllipse, createImage, createRectangle, createSquare, createTextLine, createTriangle, getHeight, getShape, getWidth, getXMax, getXMin, getYMax, getYMin, isMeasured, setHeight, setMarkerColor, setMeasured, setOffset, setPixelSized, setTheta, setWidth, setX, setXY, setY, tranform, transform
 
Methods inherited from class org.opensourcephysics.display.AbstractInteractive
getX, getY, isEnabled, setEnabled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.opensourcephysics.display.Interactive
getX, getY, isEnabled, setEnabled, setX, setXY, setY
 
Methods inherited from interface org.opensourcephysics.display.Measurable
getXMax, getXMin, getYMax, getYMin, isMeasured
 

Constructor Detail

BoundedShape

public BoundedShape(java.awt.Shape s,
                    double x,
                    double y)
Constructs a BoundedShape object for the given shape.

Parameters:
s - Shape
x - double
y - double
Method Detail

createBoundedRectangle

public static BoundedShape createBoundedRectangle(double x,
                                                  double y,
                                                  double w,
                                                  double h)
Creates a bounded rectangle.

Parameters:
x -
y -
w -
h -
Returns:
the interactive rectangle

createBoundedTriangle

public static BoundedShape createBoundedTriangle(double x,
                                                 double y,
                                                 double b,
                                                 double h)
Creates a bounded rectangle.

Parameters:
x -
y -
b - base
h - height
Returns:
the rectangle

createBoundedArrow

public static BoundedShape createBoundedArrow(double x,
                                              double y,
                                              double w,
                                              double h)
Creates a bounded arrow.

Parameters:
x -
y -
w - base
h - height
Returns:
the arrow

createBoundedCenteredArrow

public static BoundedShape createBoundedCenteredArrow(double x,
                                                      double y,
                                                      double w,
                                                      double h)
Creates a bounded arrow.

Parameters:
x -
y -
w - base
h - height
Returns:
the arrow

createBoundedImage

public static BoundedShape createBoundedImage(java.awt.Image image,
                                              double x,
                                              double y)
Creates a bounded image.

Parameters:
x -
y -
image -
Returns:
the rectangle

createBoundedEllipse

public static BoundedShape createBoundedEllipse(double x,
                                                double y,
                                                double w,
                                                double h)
Creates a bounded ellipse.

Parameters:
x -
y -
w -
h -
Returns:
BoundedShape

createBoundedCircle

public static BoundedShape createBoundedCircle(double x,
                                               double y,
                                               double d)
Creates a bounded circle.

Parameters:
x -
y -
d - the diameter
Returns:
the circle

setSelected

public void setSelected(boolean selected)
Specified by:
setSelected in interface Selectable

isSelected

public boolean isSelected()
Specified by:
isSelected in interface Selectable

setXYDrag

public void setXYDrag(boolean enable)
Sets the xy drag option.

Parameters:
enable - boolean

isXYDrag

public boolean isXYDrag()
Gets the xy drag boolean.

Returns:
boolean true if center can be dragged

setRotateDrag

public void setRotateDrag(boolean enable)
Sets the rotate drag option.

Parameters:
enable - boolean

isRotateDrag

public boolean isRotateDrag()
Gets the rotate drag option.

Returns:
boolean

setWidthDrag

public void setWidthDrag(boolean enable)
Sets the width drag option.

Parameters:
enable - boolean

isWidthDrag

public boolean isWidthDrag()
Gets the width width drag option.

Returns:
boolean true if center can be dragged

setHeightDrag

public void setHeightDrag(boolean enable)
Sets the height drag option.

Parameters:
enable - boolean

isHeightDrag

public boolean isHeightDrag()
Gets the height drag option.

Returns:
boolean true if center can be dragged

getPreferredCursor

public java.awt.Cursor getPreferredCursor()
Specified by:
getPreferredCursor in interface Selectable

toggleSelected

public void toggleSelected()
Specified by:
toggleSelected in interface Selectable

findInteractive

public Interactive findInteractive(DrawingPanel panel,
                                   int xpix,
                                   int ypix)
Description copied from class: AbstractInteractive
Finds the interactive object that will respond to mouse actions.

Specified by:
findInteractive in interface Interactive
Overrides:
findInteractive in class AbstractInteractive
Parameters:
panel - DrawingPanel
xpix - int
ypix - int
Returns:
Interactive

isInside

public boolean isInside(DrawingPanel panel,
                        int xpix,
                        int ypix)
Determines if the shape is enabled and if the given pixel coordinates are within the shape.

Overrides:
isInside in class InteractiveShape
Parameters:
panel - DrawingPanel
xpix - int
ypix - int
Returns:
boolean

draw

public void draw(DrawingPanel panel,
                 java.awt.Graphics g)
Draws the shape.

Specified by:
draw in interface Drawable
Overrides:
draw in class InteractiveShape
Parameters:
panel - the drawing panel
g - the graphics context

toString

public java.lang.String toString()
Gets a description of this object.

Overrides:
toString in class InteractiveShape
Returns:
String

getLoader

public static XML.ObjectLoader getLoader()
Gets the XML object loader for this class.

Returns:
ObjectLoader