ucar.unidata.idv.control
Class TimeHeightControl

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.GridDisplayControl
                  extended by ucar.unidata.idv.control.LineProbeControl
                      extended by ucar.unidata.idv.control.TimeHeightControl
All Implemented Interfaces:
ActionListener, ItemListener, PropertyChangeListener, EventListener, HyperlinkListener, Sharable, DataChangeListener, DisplayControl, Prototypable, ControlListener, DisplayListener
Direct Known Subclasses:
FlowTimeHeightControl, Level2TimeHeightControl

public class TimeHeightControl
extends LineProbeControl

Given an earth-locared 3D VisAD Field with a time domain, make a 2D plot of the range data against height and time for one location on the Earth, and make related controls. The display is in its own window; there is also a related selector point on the other main map display which allows user to select and move the sample location on Earth.

Version:
$Revision: 1.72 $Date: 2006/12/01 20:16:38 $
Author:
IDV Development Team

Nested Class Summary
 
Nested classes/interfaces inherited from class ucar.unidata.idv.control.DisplayControlImpl
DisplayControlImpl.SideLegendLabel
 
Field Summary
static String SHARE_PROFILE
          property for sharing the profile location
protected  TimeHeightViewManager timeHeightView
          the control window's view manager
 
Fields inherited from class ucar.unidata.idv.control.LineProbeControl
positionText
 
Fields inherited from class ucar.unidata.idv.control.GridDisplayControl
CMD_CONTOURDIALOG, CMD_SETLEVELS, gridDataInstance, INITIAL_PROBE_EARTHLOCATION, log_, settingLevel
 
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, 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
TimeHeightControl()
          Default Contructor; sets flags.
 
Method Summary
 void addPropertiesComponents(JTabbedPane jtp)
          Add tabs to the properties dialog.
 void applyPreferences()
          Apply the preferences.
protected  DisplayableData createDataDisplay()
          Create the default data display if not showAsContours
protected  void displayTHForCoord(FieldImpl fi, int NN)
          Make a 2D display of the range values against domain coordinate # NN.
 boolean doApplyProperties()
          Apply the properties
protected  void doMakeColorScales()
          Actually create the color scales.
protected  Container doMakeContents()
          Make the UI contents for this control window.
 Color getBackground()
          Get the background color
 void getControlWidgets(List controlWidgets)
          make widgets for check box for latest data time on left of x axis.
 DisplayableData getDataDisplay()
          Return the Displayable created by createDataDisplay.
 Color getForeground()
          Get the foreground color
 boolean getLatestOnLeft()
          Get whether latest data is displayed on the left or right side of the plot.
 LatLonPoint getPositionLL(RealTuple position)
          Get the position as a lat/lon point
 boolean getShowAsContours()
          Get whether the display is an image or contours.
protected  ViewManager getTimeHeightViewManager()
          Get the view manager for the control window.
protected  void getViewMenuItems(List items, boolean forMenuBar)
          Add items to the command menu.
 boolean init(DataChoice dataChoice)
          Construct the display, frame, and controls
 void initDone()
          Called after init().
 void loadProfile(RealTuple position)
          Given the location of the profile SelectorPoint, create a data set for a profile at that location, and load it in display.
protected  void probePositionChanged(RealTuple position)
          Method to call when the probe position changes
 void setBackground(Color color)
          Set the background color
protected  boolean setData(DataChoice dataChoice)
          User has asked to see a different new parameter in this existing display.
 void setForeground(Color color)
          Set the foreground color
 void setLatestOnLeft(boolean yesorno)
          Set whether latest data is displayed on the left or right side of the plot.
 void setShowAsContours(boolean yesorno)
          Get whether the display is shown as contours.
 void setShowAsImage(boolean yesorno)
          Deprecated. use #setShowAsContours(boolean) instead
 
Methods inherited from class ucar.unidata.idv.control.LineProbeControl
addLabelMacros, decreaseProbeSize, doMakeProbe, doMakeProbe, doMakeProbe, doMakeProbe, doMakeProbeMenu, doMoveProbe, getEditMenuItems, getGridCenterPosition, getInitialLinePosition, getInitialPosition, getLegendLabels, getMacroNames, getMarker, getPointSize, getPosition, increaseProbeSize, projectionChanged, propertyChange, receiveShareData, resetProbePosition, setMarker, setPointSize, setPosition, setProbePosition, setProbePosition, updateLegendLabel
 
Methods inherited from class ucar.unidata.idv.control.GridDisplayControl
actionPerformed, addTopographyMap, convertColorRange, doMakeContourLevelControl, doMakeDataInstance, doMakeLevelControl, doMakeLevelControl, getColorParamName, getColorRangeFromData, getColorRangeIndex, getColorUnit, getContourInfo, getCursorReadoutData, getCursorReadoutInner, getDataProjection, getDefaultContourInfo, getDisplayUnit, getGridDataInstance, getInitialColorTable, getInitialRange, getRawDataUnit, haveMultipleFields, initializeDefaultContourInfo, isDisplayUnitAlsoColorUnit, setLevel, setLevel, setLevelFromUser
 
Methods inherited from class ucar.unidata.idv.control.DisplayControlImpl
activateDisplays, addAttributedDisplayable, addAttributedDisplayable, addAttributedDisplayable, addAttributeFlags, addCheckBoxSettings, addDataChoice, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayMaster, addDisplaySettings, addNewData, addNoteText, addPropertyChangeListener, addSharable, addToRangeMenu, addToRangeMenu, addToRangeMenu, addViewManager, appendDataChoices, applyAttributesToDisplayables, applyColor, applyColorScaleInfo, applyColorTable, applyColorUnit, applyContourInfo, applyDisplaySetting, applyDisplayUnit, applyLineWidth, 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, doMakeBottomLegendComponent, doMakeChangeColorMenu, doMakeChangeColorMenu, doMakeChangeParameterMenuItem, doMakeColorControl, doMakeColorControl, doMakeMenuBar, doMakeMenuBarMenus, doMakeRemoveControl, doMakeSideLegendComponent, doMakeSkipFactorSlider, doMakeVisibilityControl, doMakeWidgetComponent, doMakeWindow, doMakeZPositionSlider, doRemove, 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, getColorUnitName, getColorWidgetLabel, getComponentHolder, getContents, getControlChangeSleepTime, getControlContext, getCursorReadout, getDataChoice, getDataChoices, getDataInstance, getDataInstance, 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, getDisplayUnitName, getDisplayVisibility, getDoCursorReadout, getEditMenuItems, getExpandedInTabs, getExtraLabelTemplate, getExtraLegendComponent, getExtraMenus, getFileMenuItems, getFileMenuItems, getGraphicsConfiguration, getHadDataChoices, getHaveInitialized, getHelpIds, getHelpMenuItems, getId, getIdv, getImage, getImage, getInitDataChoices, getInitialZPosition, getLabel, getLastFileMenuItems, getLegendButtons, getLegendComponent, getLegendLabel, getLegendLabelTemplate, getLegendToolTip, getLineWidth, getLineWidthWidget, getLineWidthWidgetLabel, getLockVisibilityToggle, getLongParamName, getMainPanel, getMainPanelSize, getMakeWindow, getMapDisplay, getMapViewManager, getMapViewProjection, getMenuLabel, getMyDataChoices, getNavigatedDisplay, getNoteText, getObjectStore, getOkToFireEvents, getOldColorTableOrInitialColorTable, getOriginalDataChoicesLabel, getOuterContents, getProperty, getProperty, getPropertyDisplayName, getRange, getRangeForColorTable, getRangeToApply, 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, handleDisplayChanged, handleWindowClosing, hasMapProjection, haveDataTimes, haveParameterDefaults, hide, hyperlinkUpdate, init, init, init, initAfterUnPersistence, initAfterUnPersistence, initAsPrototype, initAsTemplate, initBasic, initializeWithNewData, initWindow, isDisplay3D, isGuiShown, isInitDone, isInTransectView, isInViewManager, itemStateChanged, makeChangeColorMenuItems, makeLegendLabel, makeLockButton, makeRemoveButton, moveTo, notifyViewManagersOfChange, parseProperties, popup, popupDataDialog, popupDataDialog, popupDataDialog, processRequestProperties, 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, setDataChoices, setDataInstance, setDataInstances, setDataSelection, setDataTimeRange, setDefaultSamplingMode, setDefaultView, setDisplayableVisibility, setDisplayableVisiblity, setDisplayActive, setDisplayCategory, setDisplayId, setDisplayInactive, setDisplayListColor, setDisplayListProperties, setDisplayListTemplate, setDisplayName, setDisplayUnit, setDisplayUnitName, setDisplayVisibility, setDoCursorReadout, setExpandedInTabs, setExtraLabelTemplate, setHadDataChoices, setHelpUrl, setId, setInitDataChoices, setInitialSettings, setLabelAsPreference, setLegendBackground, setLegendForeground, setLegendLabel, setLegendLabelTemplate, setLineWidth, 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, shouldAddControlListener, shouldAddDisplayListener, 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, updateLockButton, useZPosition, viewManagerChanged, viewManagerDestroyed, viewpointChanged, 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

SHARE_PROFILE

public static final String SHARE_PROFILE
property for sharing the profile location

See Also:
Constant Field Values

timeHeightView

protected TimeHeightViewManager timeHeightView
the control window's view manager

Constructor Detail

TimeHeightControl

public TimeHeightControl()
Default Contructor; sets flags. See init() for creation actions.

Method Detail

init

public boolean init(DataChoice dataChoice)
             throws VisADException,
                    RemoteException
Construct the display, frame, and controls

Overrides:
init in class DisplayControlImpl
Parameters:
dataChoice - the data to use
Returns:
true if successful
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

createDataDisplay

protected DisplayableData createDataDisplay()
                                     throws VisADException,
                                            RemoteException
Create the default data display if not showAsContours

Returns:
the default display
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

getDataDisplay

public DisplayableData getDataDisplay()
Return the Displayable created by createDataDisplay.

Returns:
DisplayableData

setData

protected boolean setData(DataChoice dataChoice)
                   throws VisADException,
                          RemoteException
User has asked to see a different new parameter in this existing display. Do everything needed to load display with new kind of parameter.

Overrides:
setData in class DisplayControlImpl
Parameters:
dataChoice - choice for data
Returns:
true if successfule
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

initDone

public void initDone()
Called after init(). Load profile into display.

Overrides:
initDone in class DisplayControlImpl

getTimeHeightViewManager

protected ViewManager getTimeHeightViewManager()
Get the view manager for the control window.

Returns:
control window's view manager

doMakeContents

protected Container doMakeContents()
                            throws VisADException,
                                   RemoteException
Make the UI contents for this control window.

Overrides:
doMakeContents in class DisplayControlImpl
Returns:
UI container
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

displayTHForCoord

protected void displayTHForCoord(FieldImpl fi,
                                 int NN)
                          throws VisADException,
                                 RemoteException
Make a 2D display of the range values against domain coordinate # NN.

Parameters:
fi - a VisAD FlatField or seqence of FlatFields with 3 or more domain coordinates, manifold dimension 1.
NN - an integer, the index number of the coordinate to use as profile or y axis of plot (0,1,2,...)
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

probePositionChanged

protected void probePositionChanged(RealTuple position)
Method to call when the probe position changes

Overrides:
probePositionChanged in class LineProbeControl
Parameters:
position - new position

loadProfile

public void loadProfile(RealTuple position)
                 throws VisADException,
                        RemoteException
Given the location of the profile SelectorPoint, create a data set for a profile at that location, and load it in display. Show lat-lon location on the control frame.

Parameters:
position - the location
Throws:
VisADException - VisAD failure.
RemoteException - Java RMI failure.

getControlWidgets

public void getControlWidgets(List controlWidgets)
                       throws VisADException,
                              RemoteException
make widgets for check box for latest data time on left of x axis.

Overrides:
getControlWidgets in class DisplayControlImpl
Parameters:
controlWidgets - to fill
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

getPositionLL

public LatLonPoint getPositionLL(RealTuple position)
                          throws VisADException,
                                 RemoteException
Get the position as a lat/lon point

Parameters:
position - position in XYZ or LatLonAlt space
Returns:
position as lat/lon
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

getViewMenuItems

protected void getViewMenuItems(List items,
                                boolean forMenuBar)
Add items to the command menu.

Overrides:
getViewMenuItems in class DisplayControlImpl
Parameters:
items - menu to add to.
forMenuBar - whether for menu bar (true) or popup (false)

doMakeColorScales

protected void doMakeColorScales()
                          throws VisADException,
                                 RemoteException
Actually create the color scales. Override to only show in control window

Overrides:
doMakeColorScales in class DisplayControlImpl
Throws:
RemoteException
VisADException

addPropertiesComponents

public void addPropertiesComponents(JTabbedPane jtp)
Add tabs to the properties dialog.

Overrides:
addPropertiesComponents in class DisplayControlImpl
Parameters:
jtp - the JTabbedPane to add to

doApplyProperties

public boolean doApplyProperties()
Apply the properties

Overrides:
doApplyProperties in class DisplayControlImpl
Returns:
true if successful

applyPreferences

public void applyPreferences()
Apply the preferences. Used to pick up the date format changes.

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

setLatestOnLeft

public void setLatestOnLeft(boolean yesorno)
Set whether latest data is displayed on the left or right side of the plot. Used by XML persistence mainly.

Parameters:
yesorno - true if want latest is on left.

getLatestOnLeft

public boolean getLatestOnLeft()
Get whether latest data is displayed on the left or right side of the plot.

Returns:
true if latest is on left.

setShowAsImage

public void setShowAsImage(boolean yesorno)
Deprecated. use #setShowAsContours(boolean) instead

Get whether the display is shown as an image.

Parameters:
yesorno - true if want an image instead of contours.

setShowAsContours

public void setShowAsContours(boolean yesorno)
Get whether the display is shown as contours.

Parameters:
yesorno - true if want contours instead of an image.

getShowAsContours

public boolean getShowAsContours()
Get whether the display is an image or contours.

Returns:
true if contours display, false if image