public class HotSpotController extends Object implements SelectListener, MouseMotionListener
HotSpot. The active HotSpot is updated on SelectEvent.ROLLOVER
 select events, but not during a drag operation. This ensures that the active HotSpot remains active while it's being
 dragged, regardless of what's under the cursor.
 
 The active HotSpot is updated during non-drag rollover select events as follows: HotSpot.SelectEvent.getTopPickedObject().getValue(AVKey.HOT_SPOT),if the value for key AVKey.HOT_SPOT implements HotSpot.null if neither of the above
 conditions are true, or if the event is null.| Modifier and Type | Field and Description | 
|---|---|
| protected HotSpot | activeHotSpot | 
| protected boolean | customCursorIndicates that the active HotSpot has set a custom cursor that must be reset when the HotSpot is deactivated. | 
| protected boolean | dragging | 
| protected WorldWindow | wwd | 
| Constructor and Description | 
|---|
| HotSpotController(WorldWindow wwd)Creates a new HotSpotController for a specified World Window, and assigns the controller as a  SelectListeneron the World Window. | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | doSelected(SelectEvent event)Updates the active  HotSpotdepending on the specified select event action:SelectEvent.DRAG_END- Forwards the event to the activeHotSpot, then updates the active HotSpot.SelectEvent.ROLLOVERwhile not dragging - Updates the active HotSpot, then forwards the
 event to the active HotSpot. Other event types - forwards the event to the active HotSpot | 
| protected HotSpot | getActiveHotSpot()Returns the currently active  HotSpot, ornullif there is no active
 HotSpot. | 
| protected boolean | isDragging()Returns whether the user is dragging the object under the cursor. | 
| void | mouseDragged(MouseEvent e) | 
| void | mouseMoved(MouseEvent e)Update the cursor when the mouse moves. | 
| void | selected(SelectEvent event)Updates the active  HotSpotif necessary, and forwards the select event to the
 active HotSpot. | 
| protected void | setActiveHotSpot(HotSpot hotSpot)Sets the active  HotSpotto the specified HotSpot. | 
| protected void | setDragging(boolean dragging)Specifies whether the user is dragging the object under the cursor. | 
| protected void | updateActiveHotSpot(PickedObject po)Updates the active  HotSpotand the currently displayed cursor according to the
 picked objects in the specified event. | 
protected HotSpot activeHotSpot
protected boolean customCursor
protected boolean dragging
protected WorldWindow wwd
public HotSpotController(WorldWindow wwd)
SelectListener on the World Window.wwd - The World Window to monitor selection events for.protected void doSelected(SelectEvent event)
HotSpot depending on the specified select event action: SelectEvent.DRAG_END - Forwards the event to the active HotSpot, then updates the active HotSpot.SelectEvent.ROLLOVER while not dragging - Updates the active HotSpot, then forwards the
 event to the active HotSpot.event - A select event on the World Window we're monitoring.protected HotSpot getActiveHotSpot()
HotSpot, or null if there is no active
 HotSpot.null.protected boolean isDragging()
true if the user is dragging the object under the cursor, otherwise false.public void mouseDragged(MouseEvent e)
mouseDragged in interface MouseMotionListenerpublic void mouseMoved(MouseEvent e)
mouseMoved in interface MouseMotionListenere - Mouse event.public void selected(SelectEvent event)
HotSpot if necessary, and forwards the select event to the
 active HotSpot. This does nothing if the select event is null.
 
 This forwards the select event to doSelected(gov.nasa.worldwind.event.SelectEvent), and catches and logs
 any exceptions thrown by doSelected.selected in interface SelectListenerevent - A select event on the World Window we're monitoring.protected void setActiveHotSpot(HotSpot hotSpot)
HotSpot to the specified HotSpot. The HotSpot may be null, indicating that there is no active HotSpot. This registers the new HotSpot as key listener, mouse
 listener, mouse motion listener, and mouse wheel listener on the World Window's InputHandler. This removes the previously active HotSpot as a listener on the World
 Window's InputHandler. This does nothing if the active HotSpot and the specified HotSpot are the same object.
  Additionally, this updates the World Window's Cursor to the value returned by hotSpot.getCursor(), or null if the specified hotSpot is null.hotSpot - The HotSpot that becomes the active HotSpot. null to indicate that there is no active
                HotSpot.protected void setDragging(boolean dragging)
dragging - true if the user is dragging the object under the cursor, otherwise false.protected void updateActiveHotSpot(PickedObject po)
HotSpot and the currently displayed cursor according to the
 picked objects in the specified event. The active HotSpot is assigned as follows: event.getTopPickedObject().getValue(AVKey.HOT_SPOT), if the value for the key AVKey.HOT_SPOT implements HotSpot.null if neither of the above conditions are true, or if the
 event is null.po - Top picked object, which will provide the active HotSpot.