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 booleanactiveprotected booleanarmedprotected BasicDraggerdraggerprotected booleanfreeHandprotected doublefreeHandMinSpacingprotected MeasureTool.ControlPointlastPickedObjectprotected MeasureToolmeasureToolprotected booleanmovingprotected MeasureTool.ControlPointmovingTargetprotected MeasureTool.ControlPointrubberBandTargetprotected booleanuseRubberBand
-
Constructor Summary
Constructors Constructor Description MeasureToolController()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidautoDisarm()protected voiddoMoved(PositionEvent event)protected voiddoSelected(SelectEvent event)protected voiddragSelected(SelectEvent event)doublegetFreeHandMinSpacing()Get the minimum distance in meters between two control points for free hand drawing.MeasureToolgetMeasureTool()Get theMeasureToolthat this controller is operating on.protected voidhighlight(java.lang.Object o)booleanisActive()Returns true if the controller is in the middle of a rubber band operation.booleanisArmed()Identifies whether the measure tool controller is armed.booleanisFreeHand()Get whether this controller allows free hand drawing of path and polygons while using rubber band mode.booleanisMoving()Returns true if the controller is moving the measure shape as a whole.booleanisUseRubberBand()Returns true if this controller is using rubber band during shape creation.voidmouseClicked(java.awt.event.MouseEvent mouseEvent)voidmouseDragged(java.awt.event.MouseEvent mouseEvent)voidmouseMoved(java.awt.event.MouseEvent mouseEvent)voidmousePressed(java.awt.event.MouseEvent mouseEvent)voidmouseReleased(java.awt.event.MouseEvent mouseEvent)voidmoved(PositionEvent event)protected voidmoveToPosition(Position oldPosition, Position newPosition)Move the shape to the specified new positionvoidselected(SelectEvent event)protected java.awt.CursorselectResizeCursor(Angle azimuth)protected voidsetActive(boolean state)voidsetArmed(boolean armed)Arms and disarms the measure tool controller.protected voidsetComponentCursor(java.awt.Cursor cursor)protected voidsetCursor(MeasureTool.ControlPoint controlPoint)voidsetFreeHand(boolean state)Set whether this controller allows free hand drawing of path and polygons while using rubber band mode.voidsetFreeHandMinSpacing(double distance)Set the minimum distance in meters between two control points for free hand drawing.voidsetMeasureTool(MeasureTool measureTool)Set theMeasureToolthat this controller will be operating on.protected voidsetMoving(boolean state)voidsetUseRubberBand(boolean state)Set whether this controller should use rubber band during shape creation.voidstageChanged(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 theMeasureToolthat this controller will be operating on.- Parameters:
measureTool- theMeasureToolthat this controller will be operating on.
-
getMeasureTool
public MeasureTool getMeasureTool()
Get theMeasureToolthat this controller is operating on.- Returns:
- the
MeasureToolthat 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:
mousePressedin interfacejava.awt.event.MouseListener- Overrides:
mousePressedin classjava.awt.event.MouseAdapter
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseReleasedin interfacejava.awt.event.MouseListener- Overrides:
mouseReleasedin classjava.awt.event.MouseAdapter
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseClickedin interfacejava.awt.event.MouseListener- Overrides:
mouseClickedin classjava.awt.event.MouseAdapter
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseDraggedin interfacejava.awt.event.MouseMotionListener- Overrides:
mouseDraggedin classjava.awt.event.MouseAdapter
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseMovedin interfacejava.awt.event.MouseMotionListener- Overrides:
mouseMovedin classjava.awt.event.MouseAdapter
-
moved
public void moved(PositionEvent event)
- Specified by:
movedin interfacePositionListener
-
selected
public void selected(SelectEvent event)
- Specified by:
selectedin interfaceSelectListener
-
stageChanged
public void stageChanged(RenderingEvent event)
- Specified by:
stageChangedin 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()
-
-