| java.lang.Object edu.hws.jcm.draw.Drawable edu.hws.jcm.draw.DraggablePoint
DraggablePoint | public class DraggablePoint extends Drawable implements InputObject,Draggable(Code) | | A DraggablePoint can be added to a DisplayCanvas, where it appears as a small disk, square, or
cross. (The visual style is a settable property.) This object can be dragged with the mouse,
within the limits of the CoordinateRect that contains the DraggablePoint. Either the x- or
y-value of the point can be clamped to a specified Value. Typically, the y-value might
be given by some function of the x-value. In that case, the point is constrained to move
along the graph of the function. Or the x- or y-value can be clamped to a constant to make
the point move along a vertical or horizontal line. Two Variables are associated with
the DraggablePoint. These Variables represent the x- and y- values of the point. Each Variable
implements the Tieable interface, so it can be synchronized with other Tieable values such as
a VariableIput or VariableSlider.
|
Field Summary | |
final public static int | CROSS A style constant that specifies the visual appearance of a DraggablePoint to be a cross. | final public static int | DISK A style constant that specifies the visual appearance of a DraggablePoint to be a disk. | final public static int | SQUARE A style constant that specifies the visual appearance of a DraggablePoint to be a square. |
Constructor Summary | |
public | DraggablePoint() Create a DraggablePoint with default values for style, radius, color. | public | DraggablePoint(int style) Create a DraggablePoint with specified visual style. |
Method Summary | |
public void | checkInput() This method is required by the InputObject interface. | public void | clampX(Value v) Clamp the x-value of the point to v. | public void | clampX(double x) Clamp the x-value of the point to the constant x, so that the point is constrained to a vertical line. | public void | clampX(Function f) Clamp the x-value of the point to the function f, so that the point is constrained to move along the graph of x = f(y). | public void | clampY(Value v) Clamp the y-value of the point to v. | public void | clampY(double y) Clamp the y-value of the point to the constant y, so that the point is constrained to a horizontal line. | public void | clampY(Function f) Clamp the y-value of the point to the function f, so that the point is constrained to move along the graph of y = f(x). | public void | continueDrag(MouseEvent evt) Continue a drag operation begun in startDrag(). | public void | draw(Graphics g, boolean coordsChanged) This method, from the Drawable interface, draws the point. | public void | finishDrag(MouseEvent evt) Finish a drag operation begun in startDrag(). | public Color | getColor() Get the color used for drawing the point. | public Color | getGhostColor() Get the "ghostColor" of the point. | public Controller | getOnUserAction(Controller c) Get the Controller that is notified when the user drags the point. | public int | getRadius() Get the radius used for drawing the point. | public int | getStyle() Get the visual style of the point, which must be one of the constants
DraggablePoint.DISK, DraggablePoint.SQUARE, or DraggablePoint.CROSS. | public Variable | getXVar() Get the variable that represents the current x-value of the point. | public Variable | getYVar() Get the variable that represents the current y-value of the point. | public void | notifyControllerOnChange(Controller c) Method required by InputObject interface; in this class, it simply calls
setOnUserAction(c). | public void | setColor(Color c) Set the color to be used for drawing the point. | public void | setGhostColor(Color c) Set the ghoseColor to be used for drawing the point when it location is undefined or is outside the
proper limits. | public void | setLocation(double x, double y) Move the point to (x,y), then "clamp" the value of x or y, if a clamp Value has been set. | public void | setOnUserAction(Controller c) Set the Controller that is to be notified when the user drags the point. | public void | setRadius(int r) Set the radius that determines the size of the point when it is drawn. | public void | setStyle(int style) Set the visual style of the point. | public boolean | startDrag(MouseEvent evt) Check whether a mouse click (as specified in the MouseEvent parameter) is a
click on this DraggablePoint. |
CROSS | final public static int CROSS(Code) | | A style constant that specifies the visual appearance of a DraggablePoint to be a cross.
|
DISK | final public static int DISK(Code) | | A style constant that specifies the visual appearance of a DraggablePoint to be a disk.
|
SQUARE | final public static int SQUARE(Code) | | A style constant that specifies the visual appearance of a DraggablePoint to be a square.
|
DraggablePoint | public DraggablePoint()(Code) | | Create a DraggablePoint with default values for style, radius, color. The point appears as a dark gray disk of radius 4.
|
DraggablePoint | public DraggablePoint(int style)(Code) | | Create a DraggablePoint with specified visual style. Radius is 4, color is darkGray, and
ghostColor is lightGray.
Parameters: style - One of the style constants DraggablePoint.DISK, DraggablePoint.SQUARE, or DraggablePoint.CROSS. |
checkInput | public void checkInput()(Code) | | This method is required by the InputObject interface. In this case, it just applies the
clamping Values if any are specified.
|
clampX | public void clampX(Value v)(Code) | | Clamp the x-value of the point to v. That is, if v is not null, then whenever the location of the point
changes, its x-value is modified to v.getVal(). Note that if v is non-null then any clamp Value
specified for y will be cleared since x and y cannot both be clamped.
|
clampX | public void clampX(double x)(Code) | | Clamp the x-value of the point to the constant x, so that the point is constrained to a vertical line.
|
clampX | public void clampX(Function f)(Code) | | Clamp the x-value of the point to the function f, so that the point is constrained to move along the graph of x = f(y).
f must be a function of one variable.
|
clampY | public void clampY(Value v)(Code) | | Clamp the y-value of the point to v. That is, if v is not null, then whenever the location of the point
changes, its y-value is modified to v.getVal(). Note that if v is non-null then any clamp Value
specified for x will be cleared since x and y cannot both be clamped.
|
clampY | public void clampY(double y)(Code) | | Clamp the y-value of the point to the constant y, so that the point is constrained to a horizontal line.
|
clampY | public void clampY(Function f)(Code) | | Clamp the y-value of the point to the function f, so that the point is constrained to move along the graph of y = f(x).
f must be a function of one variable.
|
continueDrag | public void continueDrag(MouseEvent evt)(Code) | | Continue a drag operation begun in startDrag(). This is not meant to be called directly.
|
draw | public void draw(Graphics g, boolean coordsChanged)(Code) | | This method, from the Drawable interface, draws the point. It is not usually called directly.
|
finishDrag | public void finishDrag(MouseEvent evt)(Code) | | Finish a drag operation begun in startDrag(). This is not meant to be called directly.
|
getColor | public Color getColor()(Code) | | Get the color used for drawing the point.
|
getGhostColor | public Color getGhostColor()(Code) | | Get the "ghostColor" of the point. This color is used for drawing the point when its x-value
or y-value is undefined or outside the range of values on the CoordinateRect that contains
the point. (This can happen because of clamping of values. It can also happen if the limits
on the CoordinateRect are changed.)
|
getOnUserAction | public Controller getOnUserAction(Controller c)(Code) | | Get the Controller that is notified when the user drags the point. A null value means that
no notification is done.
|
getRadius | public int getRadius()(Code) | | Get the radius used for drawing the point. The point's height and width are given by two times the radius.
|
getStyle | public int getStyle()(Code) | | Get the visual style of the point, which must be one of the constants
DraggablePoint.DISK, DraggablePoint.SQUARE, or DraggablePoint.CROSS.
|
getXVar | public Variable getXVar()(Code) | | Get the variable that represents the current x-value of the point. (Note that this
variable can be type-cast to type Tieable.)
|
getYVar | public Variable getYVar()(Code) | | Get the variable that represents the current y-value of the point. (Note that this
variable can be type-cast to type Tieable.)
|
notifyControllerOnChange | public void notifyControllerOnChange(Controller c)(Code) | | Method required by InputObject interface; in this class, it simply calls
setOnUserAction(c). This is meant to be called by JCMPanel.gatherInputs().
|
setColor | public void setColor(Color c)(Code) | | Set the color to be used for drawing the point. If the specified Color value is
null, then nothing is done.
|
setGhostColor | public void setGhostColor(Color c)(Code) | | Set the ghoseColor to be used for drawing the point when it location is undefined or is outside the
proper limits. If the specified Color value is null, then nothing is done.
|
setLocation | public void setLocation(double x, double y)(Code) | | Move the point to (x,y), then "clamp" the value of x or y, if a clamp Value has been set.
|
setOnUserAction | public void setOnUserAction(Controller c)(Code) | | Set the Controller that is to be notified when the user drags the point. (The compute() method
of the Controller is called.) If the Controller value is null, then no notification is done.
|
setRadius | public void setRadius(int r)(Code) | | Set the radius that determines the size of the point when it is drawn.
The point's height and width are given by two times the radius.
|
setStyle | public void setStyle(int style)(Code) | | Set the visual style of the point. The style should be one of the constants
DraggablePoint.DISK, DraggablePoint.SQUARE, or DraggablePoint.CROSS. If it is not,
then nothing is done.
|
startDrag | public boolean startDrag(MouseEvent evt)(Code) | | Check whether a mouse click (as specified in the MouseEvent parameter) is a
click on this DraggablePoint. If so, return true, and start a drag operation.
It is expected that the continueDrag() and finishDrag() will be called to
complete the drag operation. This is only meant to be called from
the checkDraggables() method in class CoordinateRect.
|
|
|