ucar.unidata.idv.control
Class ProfilerMultiStationControl

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.ProfilerControl
                  extended by ucar.unidata.idv.control.ProfilerMultiStationControl
All Implemented Interfaces:
ActionListener, ItemListener, PropertyChangeListener, EventListener, HyperlinkListener, Sharable, DataChangeListener, DisplayControl, Prototypable, ControlListener, DisplayListener

public class ProfilerMultiStationControl
extends ProfilerControl

Given an earth-located VisAD Field of multi-station NOAA Profiler data, make a mapped wind data display, and make related controls. Uses FieldImpl with VisAD function (Time -> ((LAT,LON,Z) -> (DIR, SPD)) where time values are VisAD Datetime objects, Z has RealType RealType.Altitude, DIR and SPD have RealType Display.Flow1Azimuth and Display.Flow1Radial, The data display is in the main IDV 3D view manager.

Version:
$Revision: 1.44 $
Author:
Unidata IDV development

Nested Class Summary
 
Nested classes/interfaces inherited from class ucar.unidata.idv.control.DisplayControlImpl
DisplayControlImpl.SideLegendLabel
 
Field Summary
 
Fields inherited from class ucar.unidata.idv.control.ProfilerControl
flowScaleValue, scaleFactor, verticalIntervalValue
 
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
ProfilerMultiStationControl()
          Default constructor; does nothing.
 
Method Summary
 void actionPerformed(ActionEvent e)
          Override the base class method to catch any events.
protected  DataInstance doMakeDataInstance(DataChoice dataChoice)
          Creates and returns the GridDataInstance corresponding to a DataChoice.
protected  JComponent doMakeExtraComponent()
          Make extra component for UI
 MapProjection getDataProjection()
          Get the MapProjection for this data; if have a single point data object make synthetic map projection for location
 GridDataInstance getGridDataInstance()
          A utility to cast the getDataInstance as a GridDataInstance
protected  Range getInitialRange()
          Get the initial range for the color table
 boolean getIsPlanView()
          Get the IsPlanView property.
 float getLevel()
          Get the value of the level.
 boolean init(DataChoice dataChoice)
          Construct the Displayable and controls; get and load data in display.
 void loadData()
          Load the data
 void resetDataVerticalLocation(Real verticalInt, float zlevel, boolean use3D)
          Sample the data grid for values at the vertical interval or spacing set by input value; load that possibly-reduced data in the displayable.
protected  boolean setData(DataChoice dataChoice)
          Get FieldImpl with data to display, from the DataChoice.
 void setFlowScale(float value)
          Set the length of the wind barb
 void setIsPlanView(boolean value)
          Set the IsPlanView property.
 void setLevel(float value)
          Set the value of the level.
 void setVerticalInterval(float value)
          Change vertical separation of wind barbs in meters, to a different vertical interval.
 
Methods inherited from class ucar.unidata.idv.control.ProfilerControl
doMakeVerticalIntervalComponent, getControlWidgets, getFlowScale, getVerticalInterval, initDone
 
Methods inherited from class ucar.unidata.idv.control.DisplayControlImpl
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, doMakeContents, 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, getColorUnit, getColorUnitName, getColorWidgetLabel, getComponentHolder, getContents, getContourInfo, getControlChangeSleepTime, getControlContext, getCursorReadout, getCursorReadoutInner, 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, getDisplayUnit, getDisplayUnitName, getDisplayVisibility, getDoCursorReadout, getEditMenuItems, getEditMenuItems, getExpandedInTabs, getExtraLabelTemplate, getExtraLegendComponent, getExtraMenus, getFileMenuItems, getFileMenuItems, getGraphicsConfiguration, getHadDataChoices, getHaveInitialized, getHelpIds, getHelpMenuItems, getId, getIdv, getImage, getImage, getInitDataChoices, getInitialColorTable, 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, initAfterUnPersistence, initAfterUnPersistence, initAsPrototype, initAsTemplate, initBasic, 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, 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
 

Constructor Detail

ProfilerMultiStationControl

public ProfilerMultiStationControl()
Default constructor; does nothing. See init() for creation actions.

Method Detail

init

public boolean init(DataChoice dataChoice)
             throws VisADException,
                    RemoteException
Construct the Displayable and controls; get and load data in display.

Overrides:
init in class DisplayControlImpl
Parameters:
dataChoice - the DataChoice to use
Returns:
boolean true if DataChoice is ok.
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

loadData

public void loadData()
              throws VisADException,
                     RemoteException
Load the data

Throws:
RemoteException - Java RMI error
VisADException - error loading data

getGridDataInstance

public GridDataInstance getGridDataInstance()
A utility to cast the getDataInstance as a GridDataInstance

Returns:
the GridDataInstance

doMakeDataInstance

protected DataInstance doMakeDataInstance(DataChoice dataChoice)
                                   throws RemoteException,
                                          VisADException
Creates and returns the GridDataInstance corresponding to a DataChoice. Returns null if the DataInstance was somehow invalid.

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.

setData

protected boolean setData(DataChoice dataChoice)
                   throws VisADException,
                          RemoteException
Get FieldImpl with data to display, from the DataChoice.

Overrides:
setData in class DisplayControlImpl
Parameters:
dataChoice - the DataChoice to use
Returns:
true if DataChoice is ok.
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

doMakeExtraComponent

protected JComponent doMakeExtraComponent()
Make extra component for UI

Overrides:
doMakeExtraComponent in class ProfilerControl
Returns:
extra UI component

setIsPlanView

public void setIsPlanView(boolean value)
Set the IsPlanView property.

Parameters:
value - The new value for IsPlanView

getIsPlanView

public boolean getIsPlanView()
Get the IsPlanView property.

Returns:
The IsPlanView property

actionPerformed

public void actionPerformed(ActionEvent e)
Override the base class method to catch any events.

Specified by:
actionPerformed in interface ActionListener
Overrides:
actionPerformed in class ProfilerControl
Parameters:
e - The action event.

setLevel

public void setLevel(float value)
Set the value of the level.

Parameters:
value - the level.

getLevel

public float getLevel()
Get the value of the level.

Returns:
the level.

setVerticalInterval

public void setVerticalInterval(float value)
Change vertical separation of wind barbs in meters, to a different vertical interval. Used for 3D Views of Profiler wind - not for plan view(station plot)

Overrides:
setVerticalInterval in class ProfilerControl
Parameters:
value - a float the vertical separation in meters

resetDataVerticalLocation

public void resetDataVerticalLocation(Real verticalInt,
                                      float zlevel,
                                      boolean use3D)
                               throws VisADException,
                                      RemoteException
Sample the data grid for values at the vertical interval or spacing set by input value; load that possibly-reduced data in the displayable. If use3D is true, show data which are near the spacing given by (float) verticalInt.getValue() If use3D is false, show data only at zLevel or within 125 meters of it

Parameters:
verticalInt - sampling interval such as 500 m; IF use3D==true
zlevel - - plan view level of winds from Profiler; IF use3D false
use3D - boolean true for all data in 3d; false for plan view at one level above MSL only.
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

setFlowScale

public void setFlowScale(float value)
Set the length of the wind barb

Overrides:
setFlowScale in class ProfilerControl
Parameters:
value - the length of the wind barb

getInitialRange

protected Range getInitialRange()
                         throws RemoteException,
                                VisADException
Get the initial range for the color table

Overrides:
getInitialRange in class DisplayControlImpl
Returns:
the initial range
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

getDataProjection

public MapProjection getDataProjection()
Get the MapProjection for this data; if have a single point data object make synthetic map projection for location

Specified by:
getDataProjection in interface DisplayControl
Overrides:
getDataProjection in class DisplayControlImpl
Returns:
MapProjection for the data