ucar.unidata.idv.control
Class LocationIndicatorControl

java.lang.Object
  extended by ucar.unidata.collab.SharableImpl
      extended by ucar.unidata.idv.control.DisplayControlBase
          extended by ucar.unidata.idv.control.DisplayControlImpl
              extended by ucar.unidata.idv.control.LocationIndicatorControl
All Implemented Interfaces:
ActionListener, ItemListener, PropertyChangeListener, EventListener, HyperlinkListener, Sharable, DataChangeListener, DisplayControl, Prototypable, ControlListener, DisplayListener

public class LocationIndicatorControl
extends DisplayControlImpl

A MetApps Display Control for drawing lines on a navigated display.

Version:
$Revision: 1.46 $
Author:
MetApps development team

Nested Class Summary
static class LocationIndicatorControl.AxisInfo
          Holds state about an axis
 
Nested classes/interfaces inherited from class ucar.unidata.idv.control.DisplayControlImpl
DisplayControlImpl.SideLegendLabel
 
Field Summary
static int IDX_X
          Indices into arrays
static int IDX_Y
          Indices into arrays
static int IDX_Z
          Indices into arrays
 
Fields inherited from class ucar.unidata.idv.control.DisplayControlImpl
categories, colorScaleInfo, colorScales, contourInfo, contourInfoParams, controlContext, ctw, cw, dataSelection, defaultView, defaultViewManager, DISPLAY_LIST_NAME, displayListTable, displayMasters, displayUnit, helpUrl, initNoteText, instantiatedWithNoData, noteTextArea, noteWrapper, paramName, requestProperties, settingVisibility, sharables, showNoteText, skipSlider, srw, version, viewManagers
 
Fields inherited from class ucar.unidata.idv.control.DisplayControlBase
CMD_BARBSIZE, CMD_COLORS, CMD_COLORTABLE, CMD_INTERVAL, CMD_LEVEL, CMD_LINEWIDTH, CMD_POPUP, CMD_REMOVE, DEFAULT_POINT_SIZE, DEFAULT_SAMPLING_MODE, FIND_ALL, FIND_CATEGORY, FIND_CLASS, FIND_SPECIAL, FIND_THIS, FIND_WITHDATA, FIND_WITHTHISDATA, FIND_WITHTHISFIELD, FIND_WITHTHISVIEW, FLAG_COLOR, FLAG_COLORTABLE, FLAG_COLORUNIT, FLAG_CONTOUR, FLAG_DATACONTROL, FLAG_DISPLAYUNIT, FLAG_LINEWIDTH, FLAG_NONE, FLAG_SELECTRANGE, FLAG_SKIPFACTOR, FLAG_TIMERANGE, FLAG_ZPOSITION, GRID_INSETS, ICON_LOCK, ICON_REMOVE, ICON_UNLOCK, LABEL_NONE, log_, MACRO_DATASOURCENAME, MACRO_DISPLAYNAME, MACRO_DISPLAYUNIT, MACRO_LONGNAME, MACRO_POSITION, MACRO_SHORTNAME, MACRO_TIMESTAMP, MACRO_VALUE, NEAREST_NEIGHBOR, PREF_DISPLAYLIST_TEMPLATE, PREF_EXTRALABEL_TEMPLATE, PREF_LEGENDLABEL_TEMPLATE, PROP_REMOVED, SETTINGS_GROUP_DISPLAY, SETTINGS_GROUP_FLAGS, SHARE_CHOICES, SHARE_COLOR, SHARE_COLORSCALE, SHARE_COLORTABLE, SHARE_DISPLAYUNIT, SHARE_POSITION, SHARE_SELECTRANGE, SHARE_SKIPVALUE, SHARE_TRANSECT, SHARE_VISIBILITY, WEIGHTED_AVERAGE
 
Fields inherited from interface ucar.unidata.idv.DisplayControl
BOTTOM_LEGEND, DEFAULT_PROBEFORMAT, PREF_PREFIX, PREF_PROBEFORMAT, PREF_REMOVEONWINDOWCLOSE, PREF_SAMPLING_MODE, PREF_STANDALONE_REMOVEONCLOSE, PREF_STANDALONE_REMOVEONCLOSE_ASK, PROP_LEGENDICON, SIDE_LEGEND
 
Constructor Summary
LocationIndicatorControl()
          Create a new Drawing Control; set attributes.
 
Method Summary
protected  boolean canHandleEvents()
          Should we handle display events
 void centerAtOrigin()
          Center at origin
 void centerAtPoint()
          Center at bearing point
protected  void checkVisibility()
          Have the axisInfos check their visibilty
 void colorChanged(String colorName)
          The color has changed
protected  Container doMakeContents()
          Make the gui
 void doRemove()
          Remove this DisplayControl from the system.
 void fontChanged(Object value)
          The font has changed
 boolean getEnabled()
          Get the Enabled property.
protected  JComponent getExtraLegendComponent(int legendType)
          Assume that any display controls that have a color table widget will want the color table to show up in the legend.
 Font getFont()
          Get the font from the ui widget
 boolean getKeepInBox()
          Get the KeepInBox property.
protected  void getLegendLabels(List labels, int legendType)
          Overwrite the legend labels
 int getLineWidth()
          Get the line width
 float[] getOriginLoc()
          Get the Origin property.
 float[] getPointLoc()
          Get the Point property.
 boolean getShowPoint()
          Get the ShowPoint property.
 double getSolidAlphaPercent()
          Get the SolidAlphaPercent property.
 Color getSolidColor()
          Get the solid plane color
 float getSpan()
          Get the Span property.
protected  void getViewMenuItems(List items, boolean forMenuBar)
          Add to view menu
 LocationIndicatorControl.AxisInfo getXInfo()
          Get the x axis info
 LocationIndicatorControl.AxisInfo getYInfo()
          Get the y axis info
 LocationIndicatorControl.AxisInfo getZInfo()
          Get the z axis info
 void goToAddress(String which)
          Go the a street address
 void goToAddressInner(String which)
          Go the a street address
 void handleDisplayChanged(DisplayEvent event)
          Listen for DisplayEvents
 boolean init(DataChoice dataChoice)
          Call to help make this kind of Display Control; also calls code to made the Displayable (empty of data thus far).
 double[] latLonAltToXYZ(double lat, double lon, double alt)
          Convert the lat/lon/alt to visad box coordinates
 void lineWidthChanged(Integer v)
          The line width has changed
 void projectionChanged()
          Respond to the projection changing event
 void receiveShareData(Sharable from, Object dataId, Object[] data)
          Method called by other classes that share the the state.
 void rotateAbout(Integer i)
          Rotate about the index
 void setDisplayVisibility(boolean on)
          Turn on the visibility of this display
 void setEnabled(boolean value)
          Set the Enabled property.
 void setFont(Font value)
          Set the Font property.
 void setKeepInBox(boolean value)
          Set the KeepInBox property.
 void setLineWidth(int width)
          Set the width of the lines.
 void setOriginLoc(float[] value)
          Set the Origin property.
 void setPointLoc(float[] value)
          Set the Point property.
static void setPts(LineDrawing ld, float x1, float x2, float y1, float y2, float z1, float z2)
          Set the location of the line
 void setShowPoint(boolean value)
          Set the ShowPoint property.
 void setSolidAlphaPercent(double value)
          Set the SolidAlphaPercent property.
 void setSolidColor(Color c)
          Set the solid plane color
 void setSpan(float value)
          Set the Span property.
 void setVisibleX(boolean value)
          Set the VisibleX property.
 void setXInfo(LocationIndicatorControl.AxisInfo info)
          Set the x axis info
 void setYInfo(LocationIndicatorControl.AxisInfo info)
          Set the y axis info
 void setZInfo(LocationIndicatorControl.AxisInfo info)
          Set the z axis info
protected  boolean shouldAddControlListener()
          Signal base class to add this as a control listener
protected  boolean shouldAddDisplayListener()
          Signal base class to add this as a display listener
 void spanSliderChanged(int value)
          The span value has changed
 void transparencyChanged(Object selected)
          Handle the alpha value changing
 void updatePositionFromReadout(ucar.unidata.idv.control.LocationIndicatorControl.LocationReadout readout)
          Update the position from the text fields
 void viewpointChanged()
          Respond to control changed events from the view manager
 
Methods inherited from class ucar.unidata.idv.control.DisplayControlImpl
actionPerformed, activateDisplays, addAttributedDisplayable, addAttributedDisplayable, addAttributedDisplayable, addAttributeFlags, addCheckBoxSettings, addDataChoice, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayMaster, addDisplaySettings, addLabelMacros, addNewData, addNoteText, addPropertiesComponents, addPropertyChangeListener, addSharable, addToRangeMenu, addToRangeMenu, addToRangeMenu, addViewManager, appendDataChoices, applyAttributesToDisplayables, applyColor, applyColorScaleInfo, applyColorTable, applyColorUnit, applyContourInfo, applyDisplaySetting, applyDisplayUnit, applyLineWidth, applyPreferences, applyProperties, applyProperties, applyPropertyValues, applyRange, applySelectRange, applySkipFactor, applyTimeRange, applyZPosition, boundsClose, canBeDocked, canExportData, canSaveDataInCache, captureWindow, changeColorUnit, changeDisplayUnit, checkFlag, checkIfDataOk, checkImageSize, clearDataInstance, clearPrototype, clearViewManagers, close, colorUnitChanged, controlChanged, convertColorRange, convertRange, createDisplayListDisplayable, createIdvWindow, dataChanged, deactivateDisplays, debug, displayableToFront, displayChanged, displayControlFailed, displayUnitChanged, doApplyProperties, doMakeBottomLegendComponent, doMakeChangeColorMenu, doMakeChangeColorMenu, doMakeChangeParameterMenuItem, doMakeColorControl, doMakeColorControl, doMakeColorScales, doMakeDataInstance, doMakeMenuBar, doMakeMenuBarMenus, doMakeRemoveControl, doMakeSideLegendComponent, doMakeSkipFactorSlider, doMakeVisibilityControl, doMakeWidgetComponent, doMakeWindow, doMakeZPositionSlider, exportDisplayedData, findDisplayInfo, findDisplays, findDisplays, firePropertyChangeEvent, firstFrameDone, formatForCursorReadout, getActive, getAnimation, getAnimation, getAnimation, getAnimation, getAnimationInfo, getAnimationWidget, getAttributeFlags, getCachedData, getCanDoRemoveAll, getCategories, getChangeParameterLabel, getCollapseLegend, getColor, getColorDimness, getColorScaleInfo, getColorTable, getColorTableForDisplayable, getColorTableToApply, getColorTableWidget, getColorUnit, getColorUnitName, getColorWidgetLabel, getComponentHolder, getContents, getContourInfo, getControlChangeSleepTime, getControlContext, getControlWidgets, getCursorReadout, getCursorReadoutInner, getDataChoice, getDataChoices, getDataInstance, getDataInstance, getDataProjection, getDataProjectionForMenu, getDataProjectionLabel, getDataSelection, getDataSources, getDataTimeRange, getDataTimeRange, getDataTimeSet, getDebugDetails, getDefaultColorScaleInfo, getDefaultDistanceUnit, getDefaultFastRendering, getDefaultSamplingMode, getDefaultSamplingModeValue, getDefaultView, getDefaultViewDescriptor, getDefaultViewManager, getDetailsContents, getDisplayAltitudeType, getDisplayCategory, getDisplayCenter, getDisplayConventions, getDisplayedData, getDisplayId, getDisplayInfos, getDisplayListColor, getDisplayListData, getDisplayListDisplayable, getDisplayListTemplate, getDisplayMaster, getDisplayName, getDisplayScale, getDisplayUnit, getDisplayUnit, getDisplayUnitName, getDisplayVisibility, getDoCursorReadout, getEditMenuItems, getEditMenuItems, getExpandedInTabs, getExtraLabelTemplate, getExtraMenus, getFileMenuItems, getFileMenuItems, getGraphicsConfiguration, getHadDataChoices, getHaveInitialized, getHelpIds, getHelpMenuItems, getId, getIdv, getImage, getImage, getInitDataChoices, getInitialColorTable, getInitialRange, getInitialZPosition, getLabel, getLastFileMenuItems, getLegendButtons, getLegendComponent, getLegendLabel, getLegendLabelTemplate, getLegendToolTip, getLineWidthWidget, getLineWidthWidgetLabel, getLockVisibilityToggle, getLongParamName, getMacroNames, getMainPanel, getMainPanelSize, getMakeWindow, getMapDisplay, getMapViewManager, getMapViewProjection, getMenuLabel, getMyDataChoices, getNavigatedDisplay, getNoteText, getObjectStore, getOkToFireEvents, getOldColorTableOrInitialColorTable, getOriginalDataChoicesLabel, getOuterContents, getProperty, getProperty, getPropertyDisplayName, getRange, getRangeForColorTable, getRangeToApply, getRawDataUnit, getRequestProperties, getSamplingModeName, getSamplingModeValue, getSaveMenuItems, getSelectRange, getSelectRangeEnabled, getSelectRangeWidget, getSettingsPanel, getShortParamName, getShowInDisplayList, getShowInLegend, getShowInTabs, getShowNoteText, getSkipValue, getSkipWidgetLabel, getStore, getTemplateName, getTimeSet, getTitle, getTransientProperty, getUnitForColor, getUseFastRendering, getUseTimesInAnimation, getVersion, getVerticalValue, getViewContext, getViewer, getViewManager, getViewManager, getViewManager, getViewManagerClassNames, getViewManagers, getViewMenuItems, getWasUnPersisted, getWindow, getWindowSize, getWindowVisible, getWindowX, getWindowY, getZPosition, getZPositionSliderLabel, guiExported, guiImported, handleWindowClosing, hasMapProjection, haveDataTimes, haveParameterDefaults, hide, hyperlinkUpdate, init, init, init, initAfterUnPersistence, initAfterUnPersistence, initAsPrototype, initAsTemplate, initBasic, initDone, initializeWithNewData, initWindow, isDisplay3D, isDisplayUnitAlsoColorUnit, isGuiShown, isInitDone, isInTransectView, isInViewManager, itemStateChanged, makeChangeColorMenuItems, makeLegendLabel, makeLockButton, makeRemoveButton, moveTo, notifyViewManagersOfChange, parseProperties, popup, popupDataDialog, popupDataDialog, popupDataDialog, processRequestProperties, propertyChange, putTransientProperty, redoGuiLayout, reloadDataSource, reloadDataSourceInThread, removeDataChoice, removeDisplayable, removeDisplayables, removeOnWindowClose, removePropertyChangeListener, resetData, resetDimness, resetViewManager, revertToDefaultColorTable, revertToDefaultColorTable, revertToDefaultRange, revertToDefaultRange, saveAsFavorite, saveAsParameterDefaults, saveAsPrototype, saveAsTemplate, saveDataChoiceInCache, saveImage, setAnimationInfo, setAnimationSet, setAttributeFlags, setCachedData, setCanDoRemoveAll, setCategories, setCollapseLegend, setColor, setColorBrighter, setColorDimmer, setColorDimness, setColorScaleInfo, setColorScaleVisible, setColorTable, setColorTable, setColorTableName, setColorUnit, setColorUnitName, setComponentHolder, setContents, setContourInfo, setContourInfoParams, setData, setData, setDataChoices, setDataInstance, setDataInstances, setDataSelection, setDataTimeRange, setDefaultSamplingMode, setDefaultView, setDisplayableVisibility, setDisplayableVisiblity, setDisplayActive, setDisplayCategory, setDisplayId, setDisplayInactive, setDisplayListColor, setDisplayListProperties, setDisplayListTemplate, setDisplayName, setDisplayUnit, setDisplayUnitName, setDoCursorReadout, setExpandedInTabs, setExtraLabelTemplate, setHadDataChoices, setHelpUrl, setId, setInitDataChoices, setInitialSettings, setLabelAsPreference, setLegendBackground, setLegendForeground, setLegendLabel, setLegendLabelTemplate, setLockVisibilityToggle, setMainPanelDimensions, setMainPanelSize, setMakeWindow, setName, setNameFromUser, setNewColorUnit, setNewDisplayUnit, setNoteText, setOkToFireEvents, setOriginalDataChoicesLabel, setParamName, setPersistedVisadData, setProjectionInView, setProjectionInView, setProperty, setRange, setRange, setSelectRange, setSelectRangeEnabled, setSettingsDisplayUnit, setSharedColorScaleInfo, setShowInDisplayList, setShowInLegend, setShowInTabs, setShowNoteText, setSkipValue, setTemplateName, setTitle, setUnitForColor, setUseFastRendering, setUseTimesInAnimation, setVersion, setViewer, setViewManagerClassNames, setWindowSize, setWindowVisible, setWindowX, setWindowY, setZPosition, shouldAddAnimationListener, shouldApplyFastRendering, shouldBeDocked, shouldWindowBeVisible, show, showColorControlWidget, showColorDialog, showColorDialog, showColorScaleDialog, showColorScales, showColorSwatches, showContourPropertiesDialog, showDetails, showDisplaySettingsDialog, showHelp, showLegendMenu, showNormalCursor, showProperties, showTimeRangeDialog, showWaitCursor, timeChanged, toFront, toggleNoteTextArea, toggleWindow, toString, transectChanged, updateAnimation, updateDisplayList, updateLegendAndList, updateLegendLabel, updateLockButton, useZPosition, viewManagerChanged, viewManagerDestroyed, writeTestArchive, xxxsetDisplayActive, zSliderChanged
 
Methods inherited from class ucar.unidata.idv.control.DisplayControlBase
boxToEarth, boxToEarth, boxToEarth, boxToEarth, boxToEarth, boxToScreen, calculateRectangle, createStationTfo, earthToBox, earthToBox, earthToBoxTuple, earthToScreen, formatLevels, getScreenCenter, getSelectedStation, isLeftButtonDown, logException, logException, makeEarthLocation, screenToBox, screenToBox, screenToEarth, setStations, setStations, toBox, toEarth, userErrorMessage, userMessage
 
Methods inherited from class ucar.unidata.collab.SharableImpl
applySharableProperties, doShare, doShare, doShareExternal, doShareInternal, getSharablePropertiesComponent, getShareGroup, getSharing, getUniqueId, initSharable, removeSharable, setShareGroup, setSharing, setUniqueId, showSharableDialog
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ucar.unidata.collab.Sharable
getShareGroup, getSharing, getUniqueId
 

Field Detail

IDX_X

public static final int IDX_X
Indices into arrays

See Also:
Constant Field Values

IDX_Y

public static final int IDX_Y
Indices into arrays

See Also:
Constant Field Values

IDX_Z

public static final int IDX_Z
Indices into arrays

See Also:
Constant Field Values
Constructor Detail

LocationIndicatorControl

public LocationIndicatorControl()
Create a new Drawing Control; set attributes.

Method Detail

init

public boolean init(DataChoice dataChoice)
             throws VisADException,
                    RemoteException
Call to help make this kind of Display Control; also calls code to made the Displayable (empty of data thus far). This method is called from inside DisplayControlImpl.init(several args).

Overrides:
init in class DisplayControlImpl
Parameters:
dataChoice - the DataChoice of the moment.
Returns:
true if everything is okay
Throws:
RemoteException - When bad things happen
VisADException - When bad things happen

updatePositionFromReadout

public void updatePositionFromReadout(ucar.unidata.idv.control.LocationIndicatorControl.LocationReadout readout)
Update the position from the text fields

Parameters:
readout - The readout

setPts

public static void setPts(LineDrawing ld,
                          float x1,
                          float x2,
                          float y1,
                          float y2,
                          float z1,
                          float z2)
                   throws VisADException,
                          RemoteException
Set the location of the line

Parameters:
ld - The displayable
x1 - location
x2 - location
y1 - location
y2 - location
z1 - location
z2 - location
Throws:
RemoteException - On badness
VisADException - On badness

setDisplayVisibility

public void setDisplayVisibility(boolean on)
Turn on the visibility of this display

Specified by:
setDisplayVisibility in interface DisplayControl
Overrides:
setDisplayVisibility in class DisplayControlImpl
Parameters:
on - Visible?

checkVisibility

protected void checkVisibility()
Have the axisInfos check their visibilty


doRemove

public void doRemove()
              throws VisADException,
                     RemoteException
Remove this DisplayControl from the system. Nulls out any objects for garbagfe collection

Specified by:
doRemove in interface DisplayControl
Overrides:
doRemove in class DisplayControlImpl
Throws:
RemoteException - When bad things happen
VisADException - When bad things happen

shouldAddDisplayListener

protected boolean shouldAddDisplayListener()
Signal base class to add this as a display listener

Overrides:
shouldAddDisplayListener in class DisplayControlImpl
Returns:
Add as display listener

shouldAddControlListener

protected boolean shouldAddControlListener()
Signal base class to add this as a control listener

Overrides:
shouldAddControlListener in class DisplayControlImpl
Returns:
Add as control listener

getLegendLabels

protected void getLegendLabels(List labels,
                               int legendType)
Overwrite the legend labels

Overrides:
getLegendLabels in class DisplayControlImpl
Parameters:
labels - List of labels
legendType - Side or bottom

viewpointChanged

public void viewpointChanged()
Respond to control changed events from the view manager

Overrides:
viewpointChanged in class DisplayControlImpl

projectionChanged

public void projectionChanged()
Respond to the projection changing event

Specified by:
projectionChanged in interface DisplayControl
Overrides:
projectionChanged in class DisplayControlImpl

getExtraLegendComponent

protected JComponent getExtraLegendComponent(int legendType)
Assume that any display controls that have a color table widget will want the color table to show up in the legend.

Overrides:
getExtraLegendComponent in class DisplayControlImpl
Parameters:
legendType - type of legend
Returns:
The extra JComponent to use in legend

canHandleEvents

protected boolean canHandleEvents()
Should we handle display events

Returns:
Ok to handle events

handleDisplayChanged

public void handleDisplayChanged(DisplayEvent event)
Listen for DisplayEvents

Overrides:
handleDisplayChanged in class DisplayControlImpl
Parameters:
event - The event

receiveShareData

public void receiveShareData(Sharable from,
                             Object dataId,
                             Object[] data)
Method called by other classes that share the the state.

Specified by:
receiveShareData in interface Sharable
Overrides:
receiveShareData in class DisplayControlImpl
Parameters:
from - other class.
dataId - type of sharing
data - Array of data being shared. In this case, the first (and only?) object in the array is the level

fontChanged

public void fontChanged(Object value)
The font has changed

Parameters:
value - The value

colorChanged

public void colorChanged(