|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.bbn.openmap.MapHandlerChild | +--com.bbn.openmap.OMComponent | +--com.bbn.openmap.event.AbstractMouseMode | +--com.bbn.openmap.event.CoordMouseMode | +--com.bbn.openmap.event.DistanceMouseMode
This mouse mode draws a rubberband line and circle between each mouse click as the mouse is moved and displays the cumulative distance in nautical miles (nm), kilometers (km), statute miles (miles) and the azimuth angle in decimal degrees from north on the status bar. Several distance segments are allowed. To erase (terminate) double click the mouse.
To use this mouse mode in the OpenMap demo (in setWidgets): create the mouse mode, such as
DistanceMouseMode distMode = new DistanceMouseMode(true, id, DistanceMouseMode.DISTANCE_ALL);
Add the distance mouse mode to the mouse delegator md.addMouseMode(distMode);
This class can easily be extended, for example to create waypoints for objects.
NOTE: If some lines are not properly erased (because the mouse went outside the map for example), just use the redraw from the menu.
You can set the units used for measurements by setting the property:
prefix.units= < name for Length.java (km, miles, meters, nm) >
Field Summary | |
double |
distance
Distance of the current segment |
static int |
lineType
The line type to be displayed, see OMGraphic. |
static java.lang.String |
modeID
Mouse mode identifier, is "Distance". |
boolean |
mousePressed
Flag, true if the mouse has already been pressed |
static java.lang.String |
RepaintToCleanProperty
|
LatLonPoint |
rPoint1
rPoint1 is the anchor point of a line segment |
LatLonPoint |
rPoint2
rPoint2 is the new (current) point of a line segment |
java.util.Vector |
segments
Vector to store all distance segments, first point and last point pairs |
static java.lang.String |
ShowAngleProperty
|
static java.lang.String |
ShowCircleProperty
|
double |
totalDistance
The cumulative distance from the first mouse click |
static java.lang.String |
UnitProperty
|
Fields inherited from class com.bbn.openmap.event.CoordMouseMode |
infoDelegator |
Fields inherited from class com.bbn.openmap.event.AbstractMouseMode |
cursor, df, guiIcon, ID, IDProperty, mouseSupport, prettyName, PrettyNameProperty, visible |
Fields inherited from class com.bbn.openmap.OMComponent |
i18n, propertyPrefix |
Fields inherited from class com.bbn.openmap.MapHandlerChild |
beanContextChildSupport |
Fields inherited from interface com.bbn.openmap.PropertyConsumer |
EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty |
Constructor Summary | |
DistanceMouseMode()
Construct a DistanceMouseMode. |
|
DistanceMouseMode(boolean consumeEvents)
Construct a DistanceMouseMode. |
|
DistanceMouseMode(boolean consumeEvents,
InformationDelegator id)
Construct a DistanceMouseMode. |
|
DistanceMouseMode(boolean consumeEvents,
InformationDelegator id,
Length units)
Construct a DistanceMouseMode. |
|
DistanceMouseMode(boolean consumeEvents,
InformationDelegator id,
Length units,
int lType)
Construct a DistanceMouseMode. |
|
DistanceMouseMode(java.lang.String name,
boolean consumeEvents)
Construct an DistanceMouseMode. |
|
DistanceMouseMode(java.lang.String name,
boolean consumeEvents,
InformationDelegator id)
Construct a DistanceMouseMode. |
Method Summary | |
void |
cleanUp()
Reset the segments and distances |
protected java.lang.String |
createDistanceInformationLine(LatLonPoint llp,
double distance,
double azimuth)
|
void |
eraseCircle()
Erase the current segment circle. |
void |
eraseLines()
Erase all line segments. |
double |
getGreatCircleDist(float phi1,
float lambda0,
float phi,
float lambda,
int units)
Return the distance in the chosen unit between two points (in decimal degrees). |
int |
getLineType()
Return the line type either LINETYPE_GREATCIRCLE, LINETYPE_RHUMB, LINETYPE_STRAIGHT |
MapBean |
getMapBean()
Return the map bean. |
java.util.Properties |
getProperties(java.util.Properties getList)
PropertyConsumer interface method. |
java.util.Properties |
getPropertyInfo(java.util.Properties list)
PropertyConsumer interface method. |
boolean |
getRepaintToClean()
|
boolean |
getShowAzimuth()
Whether the display of the azimuth angle on or off. |
boolean |
getShowCircle()
Get whether the drawing of the rubberband circle on/off. |
float |
getSphericalAzimuth(float phi1,
float lambda0,
float phi,
float lambda)
Return the azimuth angle in decimal degrees from north. |
Length |
getUnit()
Return the unit of distance being displayed: Length.NM, Length.KM or Length.MILE. |
void |
listenerPaint(java.awt.Graphics g)
Called by the MapBean when it repaints, to let the MouseMode know when to update itself on the map. |
void |
mouseClicked(java.awt.event.MouseEvent e)
Process a mouseClicked event. |
void |
mouseEntered(java.awt.event.MouseEvent e)
Process a mouseEntered event. |
void |
mouseExited(java.awt.event.MouseEvent e)
Process a mouseExited event. |
void |
mouseMoved(java.awt.event.MouseEvent e)
Draw a rubberband line and circle as the mouse is moved. |
void |
mousePressed(java.awt.event.MouseEvent e)
Process a mouse pressed event. |
void |
paintCircle(LatLonPoint pt1,
LatLonPoint pt2)
Draw a rubberband circle between two points |
void |
paintCircle(LatLonPoint pt1,
LatLonPoint pt2,
java.awt.Graphics graphics)
Draw a rubberband circle between two points |
void |
paintLine(LatLonPoint pt1,
LatLonPoint pt2)
Draw a rubberband line between two points |
void |
paintLine(LatLonPoint pt1,
LatLonPoint pt2,
java.awt.Graphics graphics)
Draw a rubberband line between two points into the Graphics object. |
void |
paintRubberband(LatLonPoint pt1,
LatLonPoint pt2)
Draw a rubberband line and circle between two points |
void |
paintRubberband(LatLonPoint pt1,
LatLonPoint pt2,
java.awt.Graphics g)
Draw a rubberband line and circle between two points |
void |
setLineType(int lype)
Set the line type to be drawn see also OMGraphic |
void |
setMapBean(MapBean aMap)
Set the map bean. |
void |
setProperties(java.lang.String prefix,
java.util.Properties setList)
PropertyConsumer interface method. |
void |
setRepaintToClean(boolean rtc)
|
void |
setUnit(Length units)
Set the unit of distance to be displayed: Length.NM, Length.KM or Length.MILE. |
void |
showAzimuth(boolean onOff)
Switch the display of the azimuth angle on or off. |
void |
showCircle(boolean onOff)
Set the drawing of the rubberband circle on/off. |
Methods inherited from class com.bbn.openmap.event.CoordMouseMode |
createCoordinateInformationLine, findAndInit, findAndUndo, fireMouseLocation, getInfoDelegator, mouseDragged, setActive, setInfoDelegator |
Methods inherited from class com.bbn.openmap.event.AbstractMouseMode |
actAsProxyFor, actAsProxyFor, addMapMouseListener, getGUIIcon, getID, getModeCursor, getMouseSupport, getPrettyName, getProxyDistributionMask, isConsumeEvents, isProxyFor, isVisible, mouseReleased, releaseProxy, removeAllMapMouseListeners, removeMapMouseListener, setConsumeEvents, setGUIIcon, setID, setModeCursor, setMouseSupport, setPrettyName, setProxyDistributionMask, setVisible |
Methods inherited from class com.bbn.openmap.OMComponent |
getPropertyPrefix, setProperties, setPropertyPrefix |
Methods inherited from class com.bbn.openmap.MapHandlerChild |
addPropertyChangeListener, addVetoableChangeListener, childrenAdded, childrenRemoved, findAndInit, firePropertyChange, fireVetoableChange, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final transient java.lang.String modeID
public static final java.lang.String UnitProperty
public static final java.lang.String ShowCircleProperty
public static final java.lang.String ShowAngleProperty
public static final java.lang.String RepaintToCleanProperty
public LatLonPoint rPoint1
public LatLonPoint rPoint2
public boolean mousePressed
public java.util.Vector segments
public double distance
public double totalDistance
public static int lineType
Constructor Detail |
public DistanceMouseMode()
public DistanceMouseMode(boolean consumeEvents)
consumeEvents
- the mode setting.public DistanceMouseMode(java.lang.String name, boolean consumeEvents)
name
- the ID of the mode.consumeEvents
- if true, events are propagated to the
first MapMouseListener that successfully processes the
event, if false, events are propagated to all
MapMouseListeners. You need to setInfoDelegator, setUnit
and setLineType if you use this constructor.public DistanceMouseMode(boolean consumeEvents, InformationDelegator id, Length units)
consumeEvents
- the mode setting.id
- the calling object's info delegator.units
- the unit of distance that will be displayed, such
as Length.NM, Length.KM or Length.MILE. If null, display
all of them.public DistanceMouseMode(boolean consumeEvents, InformationDelegator id, Length units, int lType)
consumeEvents
- the mode setting.id
- the calling object's info delegator.units
- the unit of distance that will be displayed, such
as Length.NM, Length.KM or Length.MILE. If null, display
all of them.lType
- the line type that will be dispalyed such as
LINETYPE_GREATCIRCLE, LINETYPE_RHUMB, LINETYPE_STRAIGHTpublic DistanceMouseMode(boolean consumeEvents, InformationDelegator id)
consumeEvents
- the mode setting.id
- the calling object's info delegator.public DistanceMouseMode(java.lang.String name, boolean consumeEvents, InformationDelegator id)
name
- the ID of the mode.consumeEvents
- the mode setting.id
- the calling object's info delegator.Method Detail |
public void mouseClicked(java.awt.event.MouseEvent e)
mouseClicked
in interface java.awt.event.MouseListener
mouseClicked
in class AbstractMouseMode
e
- mouse event.public void mousePressed(java.awt.event.MouseEvent e)
mousePressed
in interface java.awt.event.MouseListener
mousePressed
in class AbstractMouseMode
e
- mouse event.public void mouseMoved(java.awt.event.MouseEvent e)
mouseMoved
in interface java.awt.event.MouseMotionListener
mouseMoved
in class CoordMouseMode
e
- mouse event.protected java.lang.String createDistanceInformationLine(LatLonPoint llp, double distance, double azimuth)
public void mouseEntered(java.awt.event.MouseEvent e)
mouseEntered
in interface java.awt.event.MouseListener
mouseEntered
in class AbstractMouseMode
e
- mouse event.public void mouseExited(java.awt.event.MouseEvent e)
mouseExited
in interface java.awt.event.MouseListener
mouseExited
in class AbstractMouseMode
e
- mouse event.public void paintLine(LatLonPoint pt1, LatLonPoint pt2)
pt1
- the anchor point.pt2
- the current (mouse) position.public void paintLine(LatLonPoint pt1, LatLonPoint pt2, java.awt.Graphics graphics)
pt1
- the anchor point.pt2
- the current (mouse) position.graphics
- a java.awt.Graphics object to render into.public void paintCircle(LatLonPoint pt1, LatLonPoint pt2)
pt1
- the anchor point.pt2
- the current (mouse) position.public void paintCircle(LatLonPoint pt1, LatLonPoint pt2, java.awt.Graphics graphics)
pt1
- the anchor point.pt2
- the current (mouse) position.graphics
- a java.awt.Graphics object to render into.public void paintRubberband(LatLonPoint pt1, LatLonPoint pt2)
pt1
- the anchor point.pt2
- the current (mouse) position.public void paintRubberband(LatLonPoint pt1, LatLonPoint pt2, java.awt.Graphics g)
pt1
- the anchor point.pt2
- the current (mouse) position.g
- a java.awt.Graphics object to render into.public void eraseLines()
public void eraseCircle()
public void cleanUp()
public double getGreatCircleDist(float phi1, float lambda0, float phi, float lambda, int units)
phi1
- latitude in decimal degrees of start pointlambda0
- longitude in decimal degrees of start pointphi
- latitude in decimal degrees of end pointlambda
- longitude in decimal degrees of end pointunits
- the unit of distance, DISTANCE_NM, DISTANCE_KM,
DISTANCE_MILE or all 3 types DISTANCE_ALL
public float getSphericalAzimuth(float phi1, float lambda0, float phi, float lambda)
phi1
- latitude in decimal degrees of start pointlambda0
- longitude in decimal degrees of start pointphi
- latitude in decimal degrees of end pointlambda
- longitude in decimal degrees of end point
public void setMapBean(MapBean aMap)
aMap
- a map beanpublic MapBean getMapBean()
public void setUnit(Length units)
public Length getUnit()
public void showAzimuth(boolean onOff)
onOff
- true to display the azimuth angle, false to turn
offpublic boolean getShowAzimuth()
public void setLineType(int lype)
lype
- either LINETYPE_GREATCIRCLE, LINETYPE_RHUMB,
LINETYPE_STRAIGHTpublic int getLineType()
public void showCircle(boolean onOff)
onOff
- true or falsepublic boolean getShowCircle()
public void setRepaintToClean(boolean rtc)
public boolean getRepaintToClean()
public void setProperties(java.lang.String prefix, java.util.Properties setList)
setProperties
in interface PropertyConsumer
setProperties
in class AbstractMouseMode
prefix
- the token to prefix the property namessetList
- the Properties
objectpublic java.util.Properties getProperties(java.util.Properties getList)
getProperties
in interface PropertyConsumer
getProperties
in class AbstractMouseMode
getList
- a Properties object to load the PropertyConsumer
properties into. If props equals null, then a new
Properties object should be created.
public java.util.Properties getPropertyInfo(java.util.Properties list)
getPropertyInfo
in interface PropertyConsumer
getPropertyInfo
in class AbstractMouseMode
list
- a Properties object to load the PropertyConsumer
properties into. If getList equals null, then a new
Properties object should be created.
public void listenerPaint(java.awt.Graphics g)
listenerPaint
in interface PaintListener
listenerPaint
in class AbstractMouseMode
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |