ucar.unidata.idv.control
Class PlanViewControl

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.PlanViewControl
All Implemented Interfaces:
ActionListener, ItemListener, PropertyChangeListener, EventListener, HyperlinkListener, Sharable, DataChangeListener, DisplayControl, Prototypable, ControlListener, DisplayListener
Direct Known Subclasses:
ColorPlanViewControl, ContourPlanViewControl, FlowPlanViewControl, ImagePlanViewControl, ValuePlanViewControl

public abstract class PlanViewControl
extends GridDisplayControl

Class to handle all kinds of PlanViews. A plan view is a horizontal slice at a level.

Version:
$Revision: 1.185 $
Author:
Unidata Development Team

Nested Class Summary
 
Nested classes/interfaces inherited from class ucar.unidata.idv.control.DisplayControlImpl
DisplayControlImpl.SideLegendLabel
 
Field Summary
protected  Real currentLevel
          current level
protected  Real[] currentLevels
          list of current levels
protected  FieldImpl currentSlice
          current slice
protected  DataChoice datachoice
          data choice for the data
protected  JLabel levelReadout
          level readout label
static String MACRO_LEVEL
          Macro for the short parameter name for the label
static String SHARE_LEVEL
          property for sharing levels
 
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
PlanViewControl()
          Cstr; does nothing.
 
Method Summary
protected  void addDisplaySettings(DisplaySettingsDialog dsd)
          Add DisplaySettings appropriate for this display
protected  void addLabelMacros(String template, List patterns, List values)
          Add any macro name/value pairs.
protected  void addTopographyMap()
          Wrapper around GridDisplayControl.addTopographyMap(int) to allow subclasses to set their own index.
 void addToRangeMenu(RangeWidget rw, List items)
          Add an entry into the range menu
protected  void applySkipFactor()
          Use the value of the skip factor to subset the data.
 boolean canExportData()
          Can this display control write out data.
protected abstract  DisplayableData createPlanDisplay()
          Method for creating the DisplayableData object that is the main depiction for the data controlled by this PlanViewControl; implemented by each subclass.
 Container doMakeContents()
          Make some Plan view controls for the UI.
protected  DataInstance doMakeDataInstance(DataChoice dataChoice)
          Make a DataInstance
protected  String formatLevel(Real level)
          Format the level for labelling.
protected  int getColorRangeIndex()
          Returns the index to use in the GridDataInstance array of ranges for color ranges.
 void getControlWidgets(List controlWidgets)
          Add in any special control widgets to the current list of widgets.
protected  Data getCursorReadoutData()
          _more_
protected  List getCursorReadoutInner(EarthLocation el, Real animationValue, int animationStep)
          _more_
protected  String getDataProjectionLabel()
          Get the Data projection label
protected  Data getDisplayedData()
          Get the DisplayedData
protected  void getEditMenuItems(List items, boolean forMenuBar)
          Overwrite the base class method to add a Levels menu to the edit menu
 GridDisplayable getGridDisplayable()
          Return the Displayable of the Plan View as a GridDisplayable.
 boolean getIgnoreVerticalDimension()
          get the Ignore Vertical Dimension property
 void getLegendLabels(List labels, int legendType)
          Append any label information to the list of labels.
 Real getLevel()
          Return active level value.
protected  Range getLevelColorRange()
          Get the range for the current slice.
 String getLevelsLabel()
          Get the label for the levels box.
protected  void getMacroNames(List names, List labels)
          Add any macro name/label pairs
 boolean getMultipleIsTopography()
          Get the multiple is topography property.
 DisplayableData getPlanDisplay()
          Return the displayable of the Plan View as a DisplayableData.
protected  FieldImpl getSliceForDisplay(FieldImpl slice)
          Get the slice for the display
 boolean haveLevels()
          Determine whether the data in this PlanViewControl has levels or not.
protected  boolean haveMultipleFields()
          Return whether the Data held by this display control contains multiple fields (e.g., for the isosurface colored by another parameter
 boolean init(DataChoice dataChoice)
          Called to make this kind of Display Control; also calls code to made the Displayable.
 void loadDataAtLevel(Real level)
          Load data at the level specified.
 void projectionChanged()
          Method to call if projection changes.
 void propertyChange(PropertyChangeEvent evt)
          Handle property change
 void receiveShareData(Sharable from, Object dataId, Object[] data)
          Method called by other classes that share the selector.
protected  boolean setData(DataChoice dataChoice)
          Called to initialize this control from the given dataChoice; sets levels controls to match data; make data slice at first level; set display's color table and display units.
 void setDataSelectionLevel(Real level)
          Set the level in the data selection
 void setIgnoreVerticalDimension(boolean v)
          Set the ignore Vertical Dimension property
 void setLevel(Real pl)
          Set the active level.
protected  void setLevelFromUser(Real pl)
          Set the level from the user
 void setLevelReadoutLabel(String text)
          Set the text for the level readout in the control window.
 void setLevels(Real[] levels)
          If there are, or are not, some levels in the data, set the controls accordingly.
 void setMultipleIsTopography(boolean v)
          Set the other is topography property.
 void setSettingsLevel(Real level)
          Set the active level.
protected  boolean shouldShowLevelWidget()
          This allows for derived classes to turn this off.
protected  boolean shouldShowZSelector()
          This allows for derived classes to turn this off.
protected  boolean shouldUseZPosition()
          Determine if the display and gui should have a z position.
 
Methods inherited from class ucar.unidata.idv.control.GridDisplayControl
actionPerformed, addTopographyMap, convertColorRange, doMakeContourLevelControl, doMakeLevelControl, doMakeLevelControl, getColorParamName, getColorRangeFromData, getColorUnit, getContourInfo, getDataProjection, getDefaultContourInfo, getDisplayUnit, getGridDataInstance, getInitialColorTable, getInitialRange, getRawDataUnit, initializeDefaultContourInfo, isDisplayUnitAlsoColorUnit, setLevel
 
Methods inherited from class ucar.unidata.idv.control.DisplayControlImpl
activateDisplays, addAttributedDisplayable, addAttributedDisplayable, addAttributedDisplayable, addAttributeFlags, addCheckBoxSettings, addDataChoice, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayMaster, addNewData, addNoteText, addPropertiesComponents, addPropertyChangeListener, addSharable, addToRangeMenu, addToRangeMenu, addViewManager, appendDataChoices, applyAttributesToDisplayables, applyColor, applyColorScaleInfo, applyColorTable, applyColorUnit, applyContourInfo, applyDisplaySetting, applyDisplayUnit, applyLineWidth, applyPreferences, applyProperties, applyProperties, applyPropertyValues, applyRange, applySelectRange, applyTimeRange, applyZPosition, boundsClose, canBeDocked, 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, 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, getDataSelection, getDataSources, getDataTimeRange, getDataTimeRange, getDataTimeSet, getDebugDetails, getDefaultColorScaleInfo, getDefaultDistanceUnit, getDefaultFastRendering, getDefaultSamplingMode, getDefaultSamplingModeValue, getDefaultView, getDefaultViewDescriptor, getDefaultViewManager, getDetailsContents, getDisplayAltitudeType, getDisplayCategory, getDisplayCenter, getDisplayConventions, 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, 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, initDone, 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, 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

MACRO_LEVEL

public static final String MACRO_LEVEL
Macro for the short parameter name for the label

See Also:
Constant Field Values

SHARE_LEVEL

public static final String SHARE_LEVEL
property for sharing levels

See Also:
Constant Field Values

currentLevels

protected Real[] currentLevels
list of current levels


levelReadout

protected JLabel levelReadout
level readout label


currentSlice

protected FieldImpl currentSlice
current slice


currentLevel

protected Real currentLevel
current level


datachoice

protected DataChoice datachoice
data choice for the data

Constructor Detail

PlanViewControl

public PlanViewControl()
Cstr; does nothing. See init() for creation actions.

Method Detail

getCursorReadoutData

protected Data getCursorReadoutData()
                             throws Exception
_more_

Overrides:
getCursorReadoutData in class GridDisplayControl
Returns:
_more_
Throws:
Exception - _more_

getCursorReadoutInner

protected List getCursorReadoutInner(EarthLocation el,
                                     Real animationValue,
                                     int animationStep)
                              throws Exception
_more_

Overrides:
getCursorReadoutInner in class GridDisplayControl
Parameters:
el - _more_
animationValue - _more_
animationStep - _more_
Returns:
_more_
Throws:
Exception - _more_

getDataProjectionLabel

protected String getDataProjectionLabel()
Get the Data projection label

Overrides:
getDataProjectionLabel in class DisplayControlImpl
Returns:
the label

addDisplaySettings

protected void addDisplaySettings(DisplaySettingsDialog dsd)
Add DisplaySettings appropriate for this display

Overrides:
addDisplaySettings in class DisplayControlImpl
Parameters:
dsd - the dialog to add to

addToRangeMenu

public void addToRangeMenu(RangeWidget rw,
                           List items)
Add an entry into the range menu

Overrides:
addToRangeMenu in class DisplayControlImpl
Parameters:
rw - The widget that manages the range dialog
items - List of menu items

getLevelColorRange

protected Range getLevelColorRange()
Get the range for the current slice.

Returns:
range or null

init

public boolean init(DataChoice dataChoice)
             throws VisADException,
                    RemoteException
Called to make this kind of Display Control; also calls code to made the Displayable. 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 successful
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

propertyChange

public void propertyChange(PropertyChangeEvent evt)
Handle property change

Specified by:
propertyChange in interface PropertyChangeListener
Overrides:
propertyChange in class DisplayControlImpl
Parameters:
evt - The event

haveMultipleFields

protected boolean haveMultipleFields()
Return whether the Data held by this display control contains multiple fields (e.g., for the isosurface colored by another parameter

Overrides: