ucar.unidata.idv.control
Class ThreeDSurfaceControl

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.ThreeDSurfaceControl
All Implemented Interfaces:
ActionListener, ItemListener, PropertyChangeListener, EventListener, HyperlinkListener, Sharable, DataChangeListener, DisplayControl, Prototypable, ControlListener, DisplayListener

public class ThreeDSurfaceControl
extends GridDisplayControl

A MetApps Display Control with Displayable and controls for one 3D isosurface display of one parameter.

Version:
$Revision: 1.106 $
Author:
Jeff McWhirter

Nested Class Summary
 
Nested classes/interfaces inherited from class ucar.unidata.idv.control.DisplayControlImpl
DisplayControlImpl.SideLegendLabel
 
Field Summary
static String SHARE_SURFACEVALUE
          Property for sharing isosurface value
static String SHARE_TRANSPARENCY
          Deprecated.  
 
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
ThreeDSurfaceControl()
          Default constructor; does nothing.
 
Method Summary
protected  void addDisplaySettings(DisplaySettingsDialog dsd)
          _more_
protected  void addLabelMacros(String template, List patterns, List values)
          Add any macro name/value pairs.
 boolean canExportData()
          Can this display control write out data.
protected  void displayUnitChanged(Unit oldUnit, Unit newUnit)
          Method called when display unit changes.
 float getAlpha()
          Get the transparency property value.
 void getControlWidgets(List controlWidgets)
          This gets called by the DisplayControlImpl.doMakeWidgetComponent (which is called by DisplayControlImpl.doMakeContents) to make the GUI contents of this Control, and allows this class to insert its own widgets as needed.
protected  Data getDisplayedData()
          Get the DisplayedData
 void getLegendLabels(List labels, int legendType)
          Override the base class method to add the value readout.
protected  void getMacroNames(List names, List labels)
          Add any macro name/label pairs
 double getSurfaceValue()
          Get the SurfaceValue property.
 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).
 void initDone()
          Called after init.
 void receiveShareData(Sharable from, Object dataId, Object[] data)
          Method called by other classes that share the selector.
 void setAlpha(float alpha)
          Set the transparency property value, 0.0 to 1.0 only.
protected  boolean setData(DataChoice choice)
          Set the data in the display control from the data choice
 void setLevelSliderPercent(double level)
          Set the surfaces's value as a percentage of the slider range.
 void setLevelWithRawValue(double rawLevel)
          Set the level value on the isosurface display and update all of the UI widgets.
 void setSliderValues()
          Set the initial state of the JSlider of isosurface value, with data limits, units, and labels.
 void setSurfaceValue(double value)
          Set the SurfaceValue property.
 
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, 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, canSaveDataInCache, captureWindow, changeColorUnit, changeDisplayUnit, checkFlag, checkIfDataOk, checkImageSize, clearDataInstance, clearPrototype, clearViewManagers, close, colorUnitChanged, controlChanged, convertColorRange, convertRange, createDisplayListDisplayable, createIdvWindow, dataChanged, deactivateDisplays, debug, displayableToFront, displayChanged, displayControlFailed, 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, 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, getDisplayId, getDisplayInfos, getDisplayListColor, getDisplayListData, getDisplayListDisplayable, getDisplayListTemplate, getDisplayMaster, getDisplayName, getDisplayScale, getDisplayUnit, getDisplayUnitName, getDisplayVisibility, getDoCursorReadout, getEditMenuItems, 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, initializeWithNewData, initWindow, isDisplay3D, isGuiShown, isInitDone, isInTransectView, isInViewManager, itemStateChanged, makeChangeColorMenuItems, makeLegendLabel, makeLockButton, makeRemoveButton, moveTo, notifyViewManagersOfChange, parseProperties, popup, popupDataDialog, popupDataDialog, popupDataDialog, processRequestProperties, projectionChanged, 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, 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

SHARE_SURFACEVALUE

public static final String SHARE_SURFACEVALUE
Property for sharing isosurface value

See Also:
Constant Field Values

SHARE_TRANSPARENCY

public static final String SHARE_TRANSPARENCY
Deprecated. 
Property for sharing transparency. Deprecated since transparencey is now done through color table sharing.

See Also:
Constant Field Values
Constructor Detail

ThreeDSurfaceControl

public ThreeDSurfaceControl()
Default constructor; does nothing. See init() for class initialization

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 successful
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

initDone

public void initDone()
Called after init. Adjust transparency for legacy bundles.

Overrides:
initDone in class DisplayControlImpl

getMacroNames

protected void getMacroNames(List names,
                             List labels)
Add any macro name/label pairs

Overrides:
getMacroNames in class DisplayControlImpl
Parameters:
names - List of macro names
labels - List of macro labels

addLabelMacros

protected void addLabelMacros(String template,
                              List patterns,
                              List values)
Add any macro name/value pairs.

Overrides:
addLabelMacros in class DisplayControlImpl
Parameters:
template - The template to use
patterns - The macro names
values - The macro values

displayUnitChanged

protected void displayUnitChanged(Unit oldUnit,
                                  Unit newUnit)
Method called when display unit changes.

Overrides:
displayUnitChanged in class DisplayControlImpl
Parameters:
oldUnit - old unit
newUnit - new unit

setData

protected boolean setData(DataChoice choice)
                   throws VisADException,
                          RemoteException
Set the data in the display control from the data choice

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

getControlWidgets

public void getControlWidgets(List controlWidgets)
                       throws VisADException,
                              RemoteException
This gets called by the DisplayControlImpl.doMakeWidgetComponent (which is called by DisplayControlImpl.doMakeContents) to make the GUI contents of this Control, and allows this class to insert its own widgets as needed. Makes color table chooser and slider for surface value

Overrides:
getControlWidgets in class DisplayControlImpl
Parameters:
controlWidgets - list of control widgets to populate
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

setLevelWithRawValue

public void setLevelWithRawValue(double rawLevel)
                          throws VisADException,
                                 RemoteException
Set the level value on the isosurface display and update all of the UI widgets.

Parameters:
rawLevel - new isourface value
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

receiveShareData

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

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

getLegendLabels

public void getLegendLabels(List labels,
                            int legendType)
Override the base class method to add the value readout.

Overrides:
getLegendLabels in class DisplayControlImpl
Parameters:
labels - labels to add to
legendType - The type of legend, BOTTOM_LEGEND or SIDE_LEGEND

getAlpha

public float getAlpha()
Get the transparency property value. Only here for legacy bundles

Returns:
alpha value.

setAlpha

public void setAlpha(float alpha)
Set the transparency property value, 0.0 to 1.0 only. Only for legacy bundles.

Parameters:
alpha - the transparency property value.

setLevelSliderPercent

public void setLevelSliderPercent(double level)
Set the surfaces's value as a percentage of the slider range.

Parameters:
level - the surfaces's value.

setSliderValues

public void setSliderValues()
                     throws VisADException,
                            RemoteException
Set the initial state of the JSlider of isosurface value, with data limits, units, and labels.

Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

addDisplaySettings

protected void addDisplaySettings(DisplaySettingsDialog dsd)
_more_

Overrides:
addDisplaySettings in class DisplayControlImpl
Parameters:
dsd - _more_

setSurfaceValue

public void setSurfaceValue(double value)
Set the SurfaceValue property.

Parameters:
value - The new value for SurfaceValue

getSurfaceValue

public double getSurfaceValue()
Get the SurfaceValue property.

Returns:
The SurfaceValue

canExportData

public boolean canExportData()
Can this display control write out data.

Overrides:
canExportData in class DisplayControlImpl
Returns:
true if it can

getDisplayedData

protected Data getDisplayedData()
                         throws VisADException,
                                RemoteException
Get the DisplayedData

Overrides:
getDisplayedData in class DisplayControlImpl
Returns:
the data or null
Throws:
RemoteException - problem reading remote data
VisADException - problem gettting data