ucar.unidata.idv.control
Class FlowCrossSectionControl

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

public class FlowCrossSectionControl
extends CrossSectionControl
implements FlowDisplayControl

A cross section control for depicting flow (vectors or wind barbs)

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

Nested Class Summary
 
Nested classes/interfaces inherited from class ucar.unidata.idv.control.DisplayControlImpl
DisplayControlImpl.SideLegendLabel
 
Field Summary
protected  float scaleFactor
          scaling factor
 
Fields inherited from class ucar.unidata.idv.control.CrossSectionControl
coordTrans, crossSectionView, csSelector, dataIs3D, displayIs3D, endCoord, endLocation, SHARE_XSLINE, sizeX, sizeY, startCoord, startLocation, vcsDisplay, xsDisplay
 
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.control.FlowDisplayControl
SHARE_FLOWRANGE, SHARE_FLOWSCALE
 
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
FlowCrossSectionControl()
          Create a new FlowCrossSectionControl; set attribute flags
 
Method Summary
protected  DisplayableData createVCSDisplay()
          Create the depiction for the data in the control window
protected  DisplayableData createXSDisplay()
          Create the depiction for the data in the main window
protected  JComponent doMakeFlowRangeComponent()
          Create the streamline density slider
 Range getColorRangeFromData()
          Return the range attribute of the colorTable (if non-null) else return null;
protected  int getColorRangeIndex()
          Returns the index to use in the GridDataInstance array of ranges for color ranges.
 String getColorWidgetLabel()
          Get the label for the color widget
 void getControlWidgets(List controlWidgets)
          Get any extra control widgets
 Range getFlowRange()
          Get the flow range.
 float getFlowScale()
          Get the flow scale factor.
 boolean getIsThreeComponents()
          Get the use 3 components property.
 boolean getWindbarbs()
          Get whether this is depicting wind barbs 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
 void initDone()
          Actions to perform after init().
protected  void loadData(FieldImpl fieldImpl)
          Load the external display and the local display with this data of a vertical cross section.
 void receiveShareData(Sharable from, Object dataId, Object[] data)
          Method called by other classes that share the the state.
protected  boolean setData(DataChoice dataChoice)
          Called to initialize this control from the given dataChoice; override super class instance to set skip factor before displaying data.
 void setFlowRange(Range f)
          Set the flow range.
 void setFlowScale(float f)
          Get the flow scale factor.
 void setIsThreeComponents(boolean v)
          Set the use 3 components property.
 void setWindbarbs(boolean v)
          Set whether this is depicting wind barbs or not.
 boolean showColorControlWidget()
          Show the color control widget in the widgets if FLAG_COLOR is set.
 
Methods inherited from class ucar.unidata.idv.control.CrossSectionControl
addLabelMacros, addPropertiesComponents, addTopographyMap, applyPreferences, canExportData, convertToDisplay, createCrossSectionSelector, createXFromLatLon, crossSectionChanged, doApplyProperties, doMakeContents, doRemove, getAllowAutoScale, getAnimationInfo, getAutoScaleYAxis, getAutoUpdate, getCrossSectionSelector, getCrossSectionView, getCrossSectionViewLabel, getCrossSectionViewManager, getCursorReadoutInner, getDataProjection, getDisplayedData, getDisplayTabComponent, getEditMenuItems, getEndCoord, getGridDisplayable, getInitialZPosition, getLineCoords, getMacroNames, getSelectorAttributeFlags, getStartCoord, getVerticalAxisRange, getVerticalCSDisplay, getViewMenuItems, getXSDisplay, getZPositionSliderLabel, init, initAfterUnPersistence, load2DData, loadDataFromLine, make2DData, projectionChanged, propertyChange, reScale, setAllowAutoScale, setAnimationInfo, setAutoScaleYAxis, setAutoUpdate, setBackground, setCrossSectionView, setDisplayMatrix, setEndCoord, setForeground, setStartCoord, setVerticalAxisRange, setYAxisRange, shouldAddControlListener, transectChanged, updateLocationLabel, updateViewParameters, viewpointChanged
 
Methods inherited from class ucar.unidata.idv.control.GridDisplayControl
actionPerformed, addTopographyMap, convertColorRange, doMakeContourLevelControl, doMakeDataInstance, doMakeLevelControl, doMakeLevelControl, getColorParamName, getColorUnit, getContourInfo, getCursorReadoutData, getDefaultContourInfo, getDisplayUnit, getGridDataInstance, getInitialColorTable, getInitialRange, getRawDataUnit, 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, 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, doMakeColorScales, doMakeMenuBar, doMakeMenuBarMenus, doMakeRemoveControl, doMakeSideLegendComponent, doMakeSkipFactorSlider, doMakeVisibilityControl, doMakeWidgetComponent, doMakeWindow, doMakeZPositionSlider, exportDisplayedData, findDisplayInfo, findDisplays, findDisplays, firePropertyChangeEvent, firstFrameDone, formatForCursorReadout, getActive, getAnimation, getAnimation, getAnimation, getAnimation, getAnimationWidget, getAttributeFlags, getCachedData, getCanDoRemoveAll, getCategories, getChangeParameterLabel, getCollapseLegend, getColor, getColorDimness, getColorScaleInfo, getColorTable, getColorTableForDisplayable, getColorTableToApply, getColorTableWidget, getColorUnitName, 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, getExpandedInTabs, getExtraLabelTemplate, getExtraLegendComponent, getExtraMenus, getFileMenuItems, getFileMenuItems, getGraphicsConfiguration, getHadDataChoices, getHaveInitialized, getHelpIds, getHelpMenuItems, getId, getIdv, getImage, getImage, getInitDataChoices, getLabel, getLastFileMenuItems, getLegendButtons, getLegendComponent, getLegendLabel, getLegendLabels, 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, guiExported, guiImported, handleDisplayChanged, handleWindowClosing, hasMapProjection, haveDataTimes, haveParameterDefaults, hide, hyperlinkUpdate, init, init, init, 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, 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, shouldAddDisplayListener, shouldApplyFastRendering, shouldBeDocked, shouldWindowBeVisible, show, showColorDialog, showColorDialog, showColorScaleDialog, showColorScales, showColorSwatches, showContourPropertiesDialog, showDetails, showDisplaySettingsDialog, showHelp, showLegendMenu, showNormalCursor, showProperties, showTimeRangeDialog, showWaitCursor, timeChanged, toFront, toggleNoteTextArea, toggleWindow, toString, updateAnimation, updateDisplayList, updateLegendAndList, updateLegendLabel, updateLockButton, useZPosition, viewManagerChanged, viewManagerDestroyed, 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

scaleFactor

protected final float scaleFactor
scaling factor

See Also:
Constant Field Values
Constructor Detail

FlowCrossSectionControl

public FlowCrossSectionControl()
Create a new FlowCrossSectionControl; set attribute flags

Method Detail

initDone

public void initDone()
Actions to perform after init().

Overrides:
initDone in class CrossSectionControl
See Also:
CrossSectionControl.init(ucar.unidata.data.DataChoice)

loadData

protected void loadData(FieldImpl fieldImpl)
                 throws VisADException,
                        RemoteException
Load the external display and the local display with this data of a vertical cross section.

Overrides:
loadData in class CrossSectionControl
Parameters:
fieldImpl - the data for the depiction
Throws:
RemoteException - Java RMI error
VisADException - VisAD error

setData

protected boolean setData(DataChoice dataChoice)
                   throws VisADException,
                          RemoteException
Called to initialize this control from the given dataChoice; override super class instance to set skip factor before displaying data.

Overrides:
setData in class CrossSectionControl
Parameters:
dataChoice - choice that describes the data to be loaded.
Returns:
true if successful
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

getColorWidgetLabel

public String getColorWidgetLabel()
Get the label for the color widget

Overrides:
getColorWidgetLabel in class DisplayControlImpl
Returns:
label text

createXSDisplay

protected DisplayableData createXSDisplay()
                                   throws VisADException,
                                          RemoteException
Create the depiction for the data in the main window

Specified by:
createXSDisplay in class CrossSectionControl
Returns:
the Displayable
Throws:
RemoteException - Java RMI error
VisADException - VisAD error

createVCSDisplay

protected DisplayableData createVCSDisplay()
                                    throws VisADException,
                                           RemoteException
Create the depiction for the data in the control window

Specified by:
createVCSDisplay in class CrossSectionControl
Returns:
the Displayable
Throws:
RemoteException - Java RMI error
VisADException - VisAD error

getControlWidgets

public void getControlWidgets(List controlWidgets)
                       throws VisADException,
                              RemoteException
Get any extra control widgets

Overrides:
getControlWidgets in class CrossSectionControl
Parameters:
controlWidgets - control widgets special to this control
Throws:
RemoteException - Java RMI error
VisADException - VisAD error

doMakeFlowRangeComponent

protected JComponent doMakeFlowRangeComponent()
Create the streamline density slider

Returns:
The panel that shows the streamline density slider

getFlowScale

public float getFlowScale()
Get the flow scale factor. used by XML persistence

Returns:
the flow scale

setFlowScale

public void setFlowScale(float f)
Get the flow scale factor. used by XML persistence

Parameters:
f - new flow scale

setWindbarbs

public void setWindbarbs(boolean v)
Set whether this is depicting wind barbs or not. Use by XML persistence.

Parameters:
v - true for wind barbs

getWindbarbs

public boolean getWindbarbs()
Get whether this is depicting wind barbs or not. Use by XML persistence.

Returns:
true if wind barbs

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:
haveMultipleFields in class GridDisplayControl
Returns:
true if there are multiple fields

setIsThreeComponents

public void setIsThreeComponents(boolean v)
Set the use 3 components property. Used by XML persistence

Parameters:
v - true if using u, v and w

getIsThreeComponents

public boolean getIsThreeComponents()
Get the use 3 components property. Used by XML persistence

Returns:
true if using 3 components for wind

getColorRangeIndex

protected int getColorRangeIndex()
Returns the index to use in the GridDataInstance array of ranges for color ranges.

Overrides:
getColorRangeIndex in class GridDisplayControl
Returns:
The index to be used for the color range.

getFlowRange

public Range getFlowRange()
Get the flow range. Used by XML persistence

Returns:
the flow range for this control

setFlowRange

public void setFlowRange(Range f)
Set the flow range. Used by XML persistence

Parameters:
f - new flow range

getColorRangeFromData

public Range getColorRangeFromData()
Return the range attribute of the colorTable (if non-null) else return null;

Overrides:
getColorRangeFromData in class GridDisplayControl
Returns:
The range from the color table attribute

receiveShareData

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

Specified by:
receiveShareData in interface Sharable
Overrides:
receiveShareData in class CrossSectionControl
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

showColorControlWidget

public boolean showColorControlWidget()
Show the color control widget in the widgets if FLAG_COLOR is set.

Overrides:
showColorControlWidget in class DisplayControlImpl
Returns:
false subclasses should override