ucar.unidata.idv.control
Class ObsDisplayControl

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.ObsDisplayControl
All Implemented Interfaces:
ActionListener, ItemListener, PropertyChangeListener, EventListener, HyperlinkListener, Sharable, DataChangeListener, DisplayControl, Prototypable, ControlListener, DisplayListener
Direct Known Subclasses:
ObsListControl, StationModelControl

public abstract class ObsDisplayControl
extends DisplayControlImpl

A DisplayControl for station models

Version:
$Revision: 1.58 $
Author:
MetApps Development Team

Nested Class Summary
protected static class ObsDisplayControl.RealWrapper
          Class RealWrapper Used in the JTable to show a formatted string and support sorting on the Real value
 
Nested classes/interfaces inherited from class ucar.unidata.idv.control.DisplayControlImpl
DisplayControlImpl.SideLegendLabel
 
Field Summary
protected  List colNames
          Holds the column names
protected  String colString
          column string
protected static String FIELD_ALL
          Represents when we use all fields
protected static DecimalFormat format
          decimal formatter
protected static String LABEL_ALT
          Label for altitude fields
protected static String LABEL_LAT
          Label for latitude fields
protected static String LABEL_LON
          Label for longitude fields
protected static String LABEL_TIME
          Label for Time fields
 
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
ObsDisplayControl()
          Default ctor
 
Method Summary
protected  void addDisplaySettings(DisplaySettingsDialog dsd)
          Add properties to the display settings dialog
 void applyPreferences()
          Apply the preferences.
protected  FieldImpl doDeclutterTime(FieldImpl obs)
          Declutter in time.
protected  DataInstance doMakeDataInstance(DataChoice dataChoice)
          Creates and returns the DataInstance corresponding to a DataChoice.
protected  JPanel doMakeFieldSelector()
          Make the UI contents for this control.
protected  JPanel doMakeShowRawSelector()
          Make a selector for showing raw data
 void doRemove()
          Remove this displayable
protected  void fieldSelectorChanged()
          Used to notify derived classes of when the field selector has changed
 String getColString()
          Get the ColString property.
protected  Object getColValue(Data data, MathType type, boolean useFormatPref)
          Get the column value and add it to the html
protected  Object getColValue(Data data, MathType type, boolean useFormatPref, Unit displayUnit)
          Get the column value and add it to the html
protected  Unit getDisplayUnit(Scalar data)
          Get the display unit to use for the data
protected  String getDisplayUnitName(Scalar data)
          Get the unit string for the specified Scalar
protected  List getFieldsToShow(TupleType tt)
          Return a list of the names of the fields to use
protected  int getIndex(TupleType tType, String commaSeparatedNames)
          Get the index of the comma separated names of values in the tuple
protected  int[] getIndicesToShow(TupleType tt)
          Return an array of the indexes in the obs to use
protected  String getParamLabel(String name)
          Get the label to show to the user for the given param name.
 boolean getShowDataRaw()
          Get the ShowDataRaw property.
protected  JComponent[] getTimeDeclutterComps()
          Make the gui panel for the time decluttering
 boolean getTimeDeclutterEnabled()
          Get the TimeDeclutterEnabled property.
 double getTimeDeclutterMinutes()
          Get the TimeDeclutterMinutes property.
protected  TupleType getTupleType()
          Override this in derived classes to get the TupleType of the obs
protected  boolean isIdParam(String name)
          A utility to determine if the given param name is the station id
 void setColString(String value)
          Set the ColString property.
 void setShowDataRaw(boolean value)
          Set the ShowDataRaw property.
 void setTimeDeclutterEnabled(boolean value)
          Set the TimeDeclutterEnabled property.
 void setTimeDeclutterMinutes(double value)
          Set the TimeDeclutterMinutes property.
 void showFieldSelector()
          Show the field selector window
protected  void timeDeclutterChanged()
          Handle when the time declutering state has changed
 
Methods inherited from class ucar.unidata.idv.control.DisplayControlImpl
actionPerformed, activateDisplays, addAttributedDisplayable, addAttributedDisplayable, addAttributedDisplayable, addAttributeFlags, addCheckBoxSettings, addDataChoice, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayMaster, addLabelMacros, addNewData, addNoteText, addPropertiesComponents, 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, doApplyProperties, doMakeBottomLegendComponent, doMakeChangeColorMenu, doMakeChangeColorMenu, doMakeChangeParameterMenuItem, doMakeColorControl, doMakeColorControl, doMakeColorScales, doMakeContents, 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, getExtraLegendComponent, getExtraMenus, getFileMenuItems, getFileMenuItems, getGraphicsConfiguration, getHadDataChoices, getHaveInitialized, getHelpIds, getHelpMenuItems, getId, getIdv, getImage, getImage, getInitDataChoices, getInitialColorTable, getInitialRange, getInitialZPosition, getLabel, getLastFileMenuItems, getLegendButtons, getLegendComponent, getLegendLabel, getLegendLabels, getLegendLabelTemplate, getLegendToolTip, getLineWidth, 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, getViewMenuItems, getWasUnPersisted, getWindow, getWindowSize, getWindowVisible, getWindowX, getWindowY, getZPosition, getZPositionSliderLabel, guiExported, guiImported, handleDisplayChanged, handleWindowClosing, hasMapProjection, haveDataTimes, haveParameterDefaults, hide, hyperlinkUpdate, init, 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, projectionChanged, propertyChange, putTransientProperty, receiveShareData, 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, 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, updateLegendLabel, 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

FIELD_ALL

protected static final String FIELD_ALL
Represents when we use all fields

See Also:
Constant Field Values

format

protected static DecimalFormat format
decimal formatter


colString

protected String colString
column string


LABEL_LAT

protected static String LABEL_LAT
Label for latitude fields


LABEL_LON

protected static String LABEL_LON
Label for longitude fields


LABEL_ALT

protected static String LABEL_ALT
Label for altitude fields


LABEL_TIME

protected static String LABEL_TIME
Label for Time fields


colNames

protected List colNames
Holds the column names

Constructor Detail

ObsDisplayControl

public ObsDisplayControl()
Default ctor

Method Detail

doRemove

public void doRemove()
              throws RemoteException,
                     VisADException
Remove this displayable

Specified by:
doRemove in interface DisplayControl
Overrides:
doRemove in class DisplayControlImpl
Throws:
VisADException - if a VisAD Failure occurs.
RemoteException - if a Java RMI failure occurs.

getColValue

protected Object getColValue(Data data,
                             MathType type,
                             boolean useFormatPref)
Get the column value and add it to the html

Parameters:
data - data to search
type - mathtype of the parameter for this column
useFormatPref - use parameter readout preference for formatting
Returns:
String representation of the data

getColValue

protected Object getColValue(Data data,
                             MathType type,
                             boolean useFormatPref,
                             Unit displayUnit)
Get the column value and add it to the html

Parameters:
data - data to search
type - mathtype of the parameter for this column
useFormatPref - use parameter readout preference for formatting
displayUnit - The unit to use
Returns:
String representation of the data

getDisplayUnitName

protected String getDisplayUnitName(Scalar data)
Get the unit string for the specified Scalar

Parameters:
data - real/text value
Returns:
String representation of the unit or null

getDisplayUnit

protected Unit getDisplayUnit(Scalar data)
Get the display unit to use for the data

Parameters:
data - data
Returns:
display unit

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

doDeclutterTime

protected FieldImpl doDeclutterTime(FieldImpl obs)
                             throws VisADException,
                                    RemoteException
Declutter in time.

Parameters:
obs - initial field of observations.
Returns:
a 'time' decluttered version of obs
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

timeDeclutterChanged

protected void timeDeclutterChanged()
Handle when the time declutering state has changed


getTimeDeclutterComps

protected JComponent[] getTimeDeclutterComps()
Make the gui panel for the time decluttering

Returns:
The time declutter panel

isIdParam

protected boolean isIdParam(String name)
A utility to determine if the given param name is the station id

Parameters:
name - The param name
Returns:
Is it a station id

getParamLabel

protected String getParamLabel(String name)
Get the label to show to the user for the given param name. This handles lat,lon,alt and time special.

Parameters:
name - The param name
Returns:
The label to use.

getFieldsToShow

protected List getFieldsToShow(TupleType tt)
                        throws VisADException,
                               RemoteException
Return a list of the names of the fields to use

Parameters:
tt - The types we get the names from
Returns:
List of field names to use
Throws:
RemoteException - When bad things happen
VisADException - When bad things happen

getIndicesToShow

protected int[] getIndicesToShow(TupleType tt)
                          throws VisADException,
                                 RemoteException
Return an array of the indexes in the obs to use

Parameters:
tt - The type
Returns:
Indices to use
Throws:
RemoteException - When bad things happen
VisADException - When bad things happen

getIndex

protected int getIndex(TupleType tType,
                       String commaSeparatedNames)
Get the index of the comma separated names of values in the tuple

Parameters:
tType - tuple type to search
commaSeparatedNames - list of possible names (aliases)
Returns:
index in the tuple or -1 if not found

showFieldSelector

public void showFieldSelector()
Show the field selector window


doMakeShowRawSelector

protected JPanel doMakeShowRawSelector()
Make a selector for showing raw data

Returns:
a container for this selector

doMakeFieldSelector

protected JPanel doMakeFieldSelector()
Make the UI contents for this control.

Returns:
a container for this selector

fieldSelectorChanged

protected void fieldSelectorChanged()
Used to notify derived classes of when the field selector has changed


getTupleType

protected TupleType getTupleType()
                          throws RemoteException,
                                 VisADException
Override this in derived classes to get the TupleType of the obs

Returns:
The tuple type
Throws:
RemoteException - When bad things happen
VisADException - When bad things happen

doMakeDataInstance

protected DataInstance doMakeDataInstance(DataChoice dataChoice)
                                   throws RemoteException,
                                          VisADException

Creates and returns the DataInstance corresponding to a DataChoice. Returns null if the DataInstance was somehow invalid.

This method is invoked by the overridable method DisplayControlImpl.setData(DataChoice).

Overrides:
doMakeDataInstance in class DisplayControlImpl
Parameters:
dataChoice - The DataChoice from which to create a DataInstance.
Returns:
The created DataInstance or null.
Throws:
VisADException - if a VisAD Failure occurs.
RemoteException - if a Java RMI failure occurs.

setColString

public void setColString(String value)
Set the ColString property.

Parameters:
value - The new value for ColString

getColString

public String getColString()
Get the ColString property.

Returns:
The ColString

setShowDataRaw

public void setShowDataRaw(boolean value)
Set the ShowDataRaw property.

Parameters:
value - The new value for ShowDataRaw

getShowDataRaw

public boolean getShowDataRaw()
Get the ShowDataRaw property.

Returns:
The ShowDataRaw

setTimeDeclutterMinutes

public void setTimeDeclutterMinut