Package gov.nasa.worldwind.util.measure
Class MeasureToolController
- java.lang.Object
-
- java.awt.event.MouseAdapter
-
- gov.nasa.worldwind.util.measure.MeasureToolController
-
- All Implemented Interfaces:
PositionListener
,RenderingListener
,SelectListener
,java.awt.event.MouseListener
,java.awt.event.MouseMotionListener
,java.awt.event.MouseWheelListener
,java.util.EventListener
public class MeasureToolController extends java.awt.event.MouseAdapter implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, SelectListener, PositionListener, RenderingListener
Generic controller for theMeasureTool
.- See Also:
MeasureTool
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
active
protected boolean
armed
protected BasicDragger
dragger
protected boolean
freeHand
protected double
freeHandMinSpacing
protected MeasureTool.ControlPoint
lastPickedObject
protected MeasureTool
measureTool
protected boolean
moving
protected MeasureTool.ControlPoint
movingTarget
protected MeasureTool.ControlPoint
rubberBandTarget
protected boolean
useRubberBand
-
Constructor Summary
Constructors Constructor Description MeasureToolController()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
autoDisarm()
protected void
doMoved(PositionEvent event)
protected void
doSelected(SelectEvent event)
protected void
dragSelected(SelectEvent event)
double
getFreeHandMinSpacing()
Get the minimum distance in meters between two control points for free hand drawing.MeasureTool
getMeasureTool()
Get theMeasureTool
that this controller is operating on.protected void
highlight(java.lang.Object o)
boolean
isActive()
Returns true if the controller is in the middle of a rubber band operation.boolean
isArmed()
Identifies whether the measure tool controller is armed.boolean
isFreeHand()
Get whether this controller allows free hand drawing of path and polygons while using rubber band mode.boolean
isMoving()
Returns true if the controller is moving the measure shape as a whole.boolean
isUseRubberBand()
Returns true if this controller is using rubber band during shape creation.void
mouseClicked(java.awt.event.MouseEvent mouseEvent)
void
mouseDragged(java.awt.event.MouseEvent mouseEvent)
void
mouseMoved(java.awt.event.MouseEvent mouseEvent)
void
mousePressed(java.awt.event.MouseEvent mouseEvent)
void
mouseReleased(java.awt.event.MouseEvent mouseEvent)
void
moved(PositionEvent event)
protected void
moveToPosition(Position oldPosition, Position newPosition)
Move the shape to the specified new positionvoid
selected(SelectEvent event)
protected java.awt.Cursor
selectResizeCursor(Angle azimuth)
protected void
setActive(boolean state)
void
setArmed(boolean armed)
Arms and disarms the measure tool controller.protected void
setComponentCursor(java.awt.Cursor cursor)
protected void
setCursor(MeasureTool.ControlPoint controlPoint)
void
setFreeHand(boolean state)
Set whether this controller allows free hand drawing of path and polygons while using rubber band mode.void
setFreeHandMinSpacing(double distance)
Set the minimum distance in meters between two control points for free hand drawing.void
setMeasureTool(MeasureTool measureTool)
Set theMeasureTool
that this controller will be operating on.protected void
setMoving(boolean state)
void
setUseRubberBand(boolean state)
Set whether this controller should use rubber band during shape creation.void
stageChanged(RenderingEvent event)
-
-
-
Field Detail
-
measureTool
protected MeasureTool measureTool
-
armed
protected boolean armed
-
active
protected boolean active
-
moving
protected boolean moving
-
useRubberBand
protected boolean useRubberBand
-
freeHand
protected boolean freeHand
-
freeHandMinSpacing
protected double freeHandMinSpacing
-
rubberBandTarget
protected MeasureTool.ControlPoint rubberBandTarget
-
movingTarget
protected MeasureTool.ControlPoint movingTarget
-
lastPickedObject
protected MeasureTool.ControlPoint lastPickedObject
-
dragger
protected BasicDragger dragger
-
-
Method Detail
-
setMeasureTool
public void setMeasureTool(MeasureTool measureTool)
Set theMeasureTool
that this controller will be operating on.- Parameters:
measureTool
- theMeasureTool
that this controller will be operating on.
-
getMeasureTool
public MeasureTool getMeasureTool()
Get theMeasureTool
that this controller is operating on.- Returns:
- the
MeasureTool
that this controller is operating on.
-
isUseRubberBand
public boolean isUseRubberBand()
Returns true if this controller is using rubber band during shape creation. When using rubber band, new control points are added by first pressing the left mouse button, then dragging the mouse toward the proper position, then releasing the mouse button. Otherwise new control point are added for each new click of the mouse.- Returns:
- true if this controller is using rubber band during shape creation.
-
setUseRubberBand
public void setUseRubberBand(boolean state)
Set whether this controller should use rubber band during shape creation. When using rubber band, new control points are added by first pressing the left mouse button, then dragging the mouse toward the proper position, then releasing the mouse button. Otherwise new control point are added for each new click of the mouse.- Parameters:
state
- true if this controller should use rubber band during shape creation.
-
isFreeHand
public boolean isFreeHand()
Get whether this controller allows free hand drawing of path and polygons while using rubber band mode.- Returns:
- true if free hand drawing of path and polygons in rubber band mode.
-
setFreeHand
public void setFreeHand(boolean state)
Set whether this controller allows free hand drawing of path and polygons while using rubber band mode.- Parameters:
state
- true to allow free hand drawing of path and polygons in rubber band mode.
-
getFreeHandMinSpacing
public double getFreeHandMinSpacing()
Get the minimum distance in meters between two control points for free hand drawing.- Returns:
- the minimum distance in meters between two control points for free hand drawing.
-
setFreeHandMinSpacing
public void setFreeHandMinSpacing(double distance)
Set the minimum distance in meters between two control points for free hand drawing.- Parameters:
distance
- the minimum distance in meters between two control points for free hand drawing.
-
isArmed
public boolean isArmed()
Identifies whether the measure tool controller is armed.- Returns:
- true if armed, false if not armed.
-
setArmed
public void setArmed(boolean armed)
Arms and disarms the measure tool controller. When armed, the controller monitors user input and builds the shape in response to user actions. When disarmed, the controller ignores all user input.- Parameters:
armed
- true to arm the controller, false to disarm it.
-
isActive
public boolean isActive()
Returns true if the controller is in the middle of a rubber band operation.- Returns:
- true if the controller is in the middle of a rubber band operation.
-
setActive
protected void setActive(boolean state)
-
isMoving
public boolean isMoving()
Returns true if the controller is moving the measure shape as a whole.- Returns:
- true if the controller is moving the measure shape as a whole.
-
setMoving
protected void setMoving(boolean state)
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mousePressed
in interfacejava.awt.event.MouseListener
- Overrides:
mousePressed
in classjava.awt.event.MouseAdapter
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseReleased
in interfacejava.awt.event.MouseListener
- Overrides:
mouseReleased
in classjava.awt.event.MouseAdapter
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseClicked
in interfacejava.awt.event.MouseListener
- Overrides:
mouseClicked
in classjava.awt.event.MouseAdapter
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseDragged
in interfacejava.awt.event.MouseMotionListener
- Overrides:
mouseDragged
in classjava.awt.event.MouseAdapter
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseMoved
in interfacejava.awt.event.MouseMotionListener
- Overrides:
mouseMoved
in classjava.awt.event.MouseAdapter
-
moved
public void moved(PositionEvent event)
- Specified by:
moved
in interfacePositionListener
-
selected
public void selected(SelectEvent event)
- Specified by:
selected
in interfaceSelectListener
-
stageChanged
public void stageChanged(RenderingEvent event)
- Specified by:
stageChanged
in interfaceRenderingListener
-
doMoved
protected void doMoved(PositionEvent event)
-
moveToPosition
protected void moveToPosition(Position oldPosition, Position newPosition)
Move the shape to the specified new position- Parameters:
oldPosition
- Previous position of shapenewPosition
- New position for shape
-
doSelected
protected void doSelected(SelectEvent event)
-
dragSelected
protected void dragSelected(SelectEvent event)
-
highlight
protected void highlight(java.lang.Object o)
-
setCursor
protected void setCursor(MeasureTool.ControlPoint controlPoint)
-
selectResizeCursor
protected java.awt.Cursor selectResizeCursor(Angle azimuth)
-
setComponentCursor
protected void setComponentCursor(java.awt.Cursor cursor)
-
autoDisarm
protected void autoDisarm()
-
-