edu.wisc.ssec.mcidasv.control
Class LinearCombo

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 edu.wisc.ssec.mcidasv.control.HydraControl
                  extended by edu.wisc.ssec.mcidasv.control.LinearCombo
All Implemented Interfaces:
ConsoleCallback, ActionListener, ItemListener, PropertyChangeListener, EventListener, HyperlinkListener, Sharable, DataChangeListener, DisplayControl, Prototypable, ControlListener, DisplayListener

public class LinearCombo
extends HydraControl
implements ConsoleCallback


Nested Class Summary
private static class LinearCombo.AddCombination
           
static class LinearCombo.Combination
           
private static class LinearCombo.DivideCombination
           
private static class LinearCombo.ExponentCombination
           
static class LinearCombo.JythonThing
           
private static class LinearCombo.ModuloCombination
           
private static class LinearCombo.MultiplyCombination
           
private static class LinearCombo.NegateCombination
           
static class LinearCombo.Selector
           
private static class LinearCombo.SubtractCombination
           
 
Nested classes/interfaces inherited from class ucar.unidata.idv.control.DisplayControlImpl
DisplayControlImpl.SideLegendLabel
 
Field Summary
private  ComboDataChoice comboChoice
           
private  Console console
           
static String CONSOLE_CONTROL_OBJECT
          Name used in Jython namespace to refer back to an instantiation of a linear combination control.
static String CONSOLE_DATA_OBJECT
           
static String CONSOLE_IDV_OBJECT
          Name used in Jython namespace to refer to the "IDV god object".
static String CONSOLE_OBJECT
           
private  DataChoice dataChoice
           
private  MultiSpectralDisplay display
           
private  DisplayMaster displayMaster
           
static String HYDRA_HELP_ID
          Help topic identifier.
static String HYDRA_SRC
          Path to the Jython source code that allows for interaction with a linear combination display control.
private  List<String> jythonHistory
           
private  Map<String,LinearCombo.Selector> jythonMap
           
private static org.slf4j.Logger logger
          Trusty logging object.
private  Map<String,LinearCombo.Selector> selectorMap
           
private  MultiSpectralDataSource source
           
private  String sourceFile
           
 
Fields inherited from class ucar.unidata.idv.control.DisplayControlImpl
categories, colorScaleInfo, colorScales, contourInfo, contourInfoParams, contourWidget, controlContext, ctw, dataSelection, defaultView, defaultViewManager, DISPLAY_LIST_NAME, displayListTable, displayListUsesColor, displayMasters, displayUnit, helpUrl, initNoteText, instantiatedWithNoData, noteTextArea, noteWrapper, paramName, requestProperties, selectRangeWidget, settingVisibility, sharables, showNoteText, skipSlider, version, viewManagers, ZFUDGE
 
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_GRIDTRAJECTORY, FLAG_LINEWIDTH, FLAG_NONE, FLAG_SELECTRANGE, FLAG_SKIPFACTOR, FLAG_SMOOTHING, FLAG_TEXTUREQUALITY, FLAG_TIMERANGE, FLAG_ZPOSITION, GRID_INSETS, ICON_LOCK, ICON_REMOVE, ICON_UNLOCK, LABEL_NONE, log_, MACRO_DATASOURCENAME, MACRO_DISPLAYNAME, MACRO_DISPLAYUNIT, MACRO_FHOUR, MACRO_LONGNAME, MACRO_POSITION, MACRO_SHORTNAME, MACRO_STATION, 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, RASTERMODE_SHOWALL, RASTERMODE_SHOWNONRASTER, RASTERMODE_SHOWRASTER, SIDE_LEGEND
 
Constructor Summary
LinearCombo()
           
 
Method Summary
 void addCombination(String name, Data combo)
           
protected  void addSelector(LinearCombo.Selector selector)
           
 Container doMakeContents()
          Make Gui contents
 void doRemove()
          Remove this DisplayControl.
 org.python.core.PyDictionary getBandNameMappings()
           
private  JComponent getConsoleTab()
           
 MapProjection getDataProjection()
          get MapProjection of data to display
 float getInitialWavenumber()
           
 List<String> getJythonHistory()
           
protected  MultiSpectralDisplay getMultiSpectralDisplay()
           
protected  int getSelectorCount()
           
private  Set<String> getSelectorIds(Map<String,Object> objMap)
           
 boolean init(DataChoice choice)
          Initialize this instance according to a data choice.
 void initDone()
          Called after all initialization has been done.
private  Map<String,LinearCombo.Selector> mapNamesToThings(Map<String,Object> objMap)
           
 void moveSelector(String id, float wavenum)
           
 void ranBlock(String line)
          Called after Jython's internals have finished processing line (and before control is given back to the user).
 void setJythonHistory(List<String> persistedHistory)
           
 String toString()
          The toString method.
 void updateSelector(String id, float wavenum)
           
 
Methods inherited from class edu.wisc.ssec.mcidasv.control.HydraControl
handleChannelChange, updateRange
 
Methods inherited from class ucar.unidata.idv.control.DisplayControlImpl
actionPerformed, activateDisplays, addAttributedDisplayable, addAttributedDisplayable, addAttributedDisplayable, addAttributeFlags, addCheckBoxSettings, addDataChoice, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayable, addDisplayMaster, addDisplaySettings, addLabelMacros, addNewData, addNoteText, addPropertiesComponents, addPropertyChangeListener, addRemovable, addSharable, addTimeModeWidget, addToControlContext, addToRangeMenu, addToRangeMenu, addToRangeMenu, addViewManager, appendDataChoices, applyAttributesToDisplayables, applyColor, applyColorScaleInfo, applyColorTable, applyColorUnit, applyContourInfo, applyDisplaySetting, applyDisplayUnit, applyLineWidth, applyPreferences, applyProperties, applyProperties, applyPropertyValues, applyRange, applySelectRange, applySkipFactor, applySmoothing, applyTextureQuality, applyTimeRange, applyZPosition, boundsClose, canBeDocked, canExportData, canSaveDataInCache, captureWindow, centerOnDisplay, changeColorUnit, changeDisplayUnit, checkFlag, checkIfDataOk, checkImageSize, clearDataInstance, clearPrototype, clearViewManagers, close, colorUnitChanged, controlChanged, convertColorRange, convertRange, createDisplayListDisplayable, createIdvWindow, dataChanged, deactivateDisplays, debug, displayableToFront, displayChanged, displayControlFailed, displayUnitChanged, doApplyProperties, doExport, doInitialUpdateLegendAndList, doMakeBottomLegendComponent, doMakeChangeColorMenu, doMakeChangeColorMenu, doMakeChangeParameterMenuItem, doMakeColorControl, doMakeColorControl, doMakeColorScales, doMakeDataInstance, doMakeMenuBar, doMakeMenuBarMenus, doMakePointSizeWidget, doMakeRemoveControl, doMakeSideLegendComponent, doMakeSkipFactorSlider, doMakeTextureSlider, 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, getControlMenus, getControlWidgets, getCursorReadout, getCursorReadoutInner, getCursorReadoutInner, getData, getDataChoice, getDataChoices, getDataForDisplayList, getDataInstance, getDataInstance, getDataProjectionForMenu, getDataProjectionLabel, getDataSelection, getDataSources, getDataTimeRange, getDataTimeRange, getDataTimeSet, getDebugDetails, getDefaultColorScaleInfo, getDefaultDisplayListTemplate, 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, getGrid, getGrid, getHadDataChoices, getHaveInitialized, getHelpIds, getHelpMenuItems, getId, getIdv, getImage, getImage, getInitDataChoices, getInitialColorTable, getInitialFastRendering, getInitialRange, getInitialZPosition, getInternalAnimation, getInternalAnimation, getIsRaster, getIsTimeDriver, 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, getPointSize, getProperty, getProperty, getPropertyDisplayName, getRange, getRangeForColorTable, getRangeToApply, getRawDataUnit, getRequestProperties, getSamplingModeName, getSamplingModeValue, getSamplingModeValue, getSaveMenuItems, getSelectRange, getSelectRangeEnabled, getSelectRangeWidget, getSettingsPanel, getShortParamName, getShowInDisplayList, getShowInLegend, getShowInTabs, getShowNoteText, getSkipValue, getSkipWidgetLabel, getSmoothingFactor, getSmoothingType, getSomeAnimation, getStore, getTemplateName, getTextureQuality, getTextureQualityLabel, getTimeSet, getTitle, getTransientProperty, getUnitForColor, getUseFastRendering, getUsesTimeDriver, getUseTimesInAnimation, getVersion, getVerticalValue, getViewAnimation, getViewContext, getViewer, getViewManager, getViewManager, getViewManager, getViewManagerClassNames, getViewManagerForCapture, getViewManagers, getViewMenuItems, getViewMenuItems, getVisbilityAnimationPause, getWasUnPersisted, getWindow, getWindowSize, getWindowVisible, getWindowX, getWindowY, getZPosition, getZPositionSliderLabel, guiExported, guiImported, handleDisplayChanged, handleWindowClosing, hasMapProjection, hasTimeMacro, haveDataTimes, haveParameterDefaults, hide, hyperlinkUpdate, inGlobeDisplay, 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, reallySetAttributeFlags, receiveShareData, redoGuiLayout, reloadDataSource, reloadDataSourceInThread, removeDataChoice, removeDisplayable, removeDisplayables, removeDisplayables, removeOnWindowClose, removePropertyChangeListener, resetData, resetDimness, resetViewManager, revertToDefaultColorTable, revertToDefaultColorTable, revertToDefaultRange, revertToDefaultRange, saveAsFavorite, saveAsParameterDefaults, saveAsPrototype, saveAsTemplate, saveDataChoiceInCache, saveImage, selectDataChoices, 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, setDisplayListColor, setDisplayListProperties, setDisplayListTemplate, setDisplayName, setDisplayUnit, setDisplayUnitName, setDisplayVisibility, setDoCursorReadout, setExpandedInTabs, setExtraLabelTemplate, setHadDataChoices, setHelpUrl, setId, setInitDataChoices, setInitialSettings, setInitialViewManager, setIsRaster, setIsTimeDriver, setLabelAsPreference, setLegendBackground, setLegendForeground, setLegendLabel, setLegendLabelTemplate, setLineWidth, setLockVisibilityToggle, setMainPanelDimensions, setMainPanelSize, setMakeWindow, setName, setNameFromUser, setNewColorUnit, setNewDisplayUnit, setNoteText, setOkToFireEvents, setOriginalDataChoicesLabel, setParamName, setPersistedVisadData, setPointSize, setProjectionInView, setProjectionInView, setProperty, setRange, setRange, setSelectRange, setSelectRangeEnabled, setSettingsDisplayUnit, setSharedColorScaleInfo, setShowInDisplayList, setShowInLegend, setShowInTabs, setShowNoteText, setSkipValue, setSmoothingFactor, setSmoothingType, setTemplateName, setTextureQuality, setTitle, setUnitForColor, setUseFastRendering, setUsesTimeDriver, setUseTimesInAnimation, setVersion, setViewer, setViewManagerClassNames, setVisbilityAnimationPause, setWindowSize, setWindowVisible, setWindowX, setWindowY, setZPosition, 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, toggleVisibilityForVectorGraphicsRendering, toggleWindow, transectChanged, updateAnimation, updateDataInstance, updateDataSelection, updateDisplayList, updateGridDataInstance, updateLegendAndList, updateLegendLabel, updateLockButton, useSmoothingFactor, 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, getLabeledReal, getLevelReal, getScreenCenter, getSelectedStation, getTmpProperty, isLeftButtonDown, logException, logException, makeEarthLocation, putTmpProperty, removeTmpProperty, screenToBox, screenToBox, screenToEarth, setStations, setStations, toBox, toEarth, userErrorMessage, userMessage
 
Methods inherited from class ucar.unidata.collab.SharableImpl
applySharableProperties, doShare, doShare, doShareExternal, doShareInternal, getReceiveShareTime, getSharablePropertiesComponent, getShareGroup, getSharing, getUniqueId, initSharable, removeSharable, setReceiveShareTime, 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.idv.DisplayControl
getTmpProperty, putTmpProperty, removeTmpProperty
 
Methods inherited from interface ucar.unidata.collab.Sharable
getReceiveShareTime, getShareGroup, getSharing, getUniqueId, setReceiveShareTime
 

Field Detail

logger

private static final org.slf4j.Logger logger
Trusty logging object.


HYDRA_HELP_ID

public static final String HYDRA_HELP_ID
Help topic identifier.

See Also:
Constant Field Values

HYDRA_SRC

public static final String HYDRA_SRC
Path to the Jython source code that allows for interaction with a linear combination display control.

See Also:
Constant Field Values

CONSOLE_IDV_OBJECT

public static final String CONSOLE_IDV_OBJECT
Name used in Jython namespace to refer to the "IDV god object".

See Also:
Constant Field Values

CONSOLE_CONTROL_OBJECT

public static final String CONSOLE_CONTROL_OBJECT
Name used in Jython namespace to refer back to an instantiation of a linear combination control.

See Also:
Constant Field Values

CONSOLE_OBJECT

public static final String CONSOLE_OBJECT
See Also:
Constant Field Values

CONSOLE_DATA_OBJECT

public static final String CONSOLE_DATA_OBJECT
See Also:
Constant Field Values

console

private Console console

display

private MultiSpectralDisplay display

displayMaster

private DisplayMaster displayMaster

sourceFile

private String sourceFile

comboChoice

private ComboDataChoice comboChoice

source

private MultiSpectralDataSource source

jythonHistory

private List<String> jythonHistory

selectorMap

private Map<String,LinearCombo.Selector> selectorMap

jythonMap

private Map<String,LinearCombo.Selector> jythonMap

dataChoice

private DataChoice dataChoice
Constructor Detail

LinearCombo

public LinearCombo()
Method Detail

init

public boolean init(DataChoice choice)
             throws VisADException,
                    RemoteException
Description copied from class: ucar.unidata.idv.control.DisplayControlImpl

Initialize this instance according to a data choice. Subclasses should override this method. Overridding methods should probably invoke DisplayControlImpl.setData(DataChoice) as part of their initialization procedure -- although it is unclear when this is actually necessary.

This implementation simply returns true.

Overrides:
init in class DisplayControlImpl
Parameters:
choice - A data choice or null.
Returns:
true if and only if this instance was correctly initialized by the data choice.
Throws:
VisADException - if a VisAD Failure occurs.
RemoteException - if a Java RMI failure occurs.

initDone

public void initDone()
Description copied from class: ucar.unidata.idv.control.DisplayControlImpl
Called after all initialization has been done. A hook that allows derived classes to do any further initialization.

Overrides:
initDone in class DisplayControlImpl

getJythonHistory

public List<String> getJythonHistory()

setJythonHistory

public void setJythonHistory(List<String> persistedHistory)

getDataProjection

public MapProjection getDataProjection()
Description copied from class: ucar.unidata.idv.control.DisplayControlImpl
get MapProjection of data to display

Specified by:
getDataProjection in interface DisplayControl
Overrides:
getDataProjection in class DisplayControlImpl
Returns:
The native projection of the data

doMakeContents

public Container doMakeContents()
Description copied from class: ucar.unidata.idv.control.DisplayControlImpl
Make Gui contents

Overrides:
doMakeContents in class DisplayControlImpl
Returns:
User interface contents

getConsoleTab

private JComponent getConsoleTab()

doRemove

public void doRemove()
              throws VisADException,
                     RemoteException
Description copied from class: ucar.unidata.idv.control.DisplayControlImpl
Remove this DisplayControl. Tells the ControlContext to removeDisplayControl. Removes all Displayable-s from their ViewManager-s, remove this object from its Sharable group, and sets the visibility of the dialog window to false.

Specified by:
doRemove in interface DisplayControl
Overrides:
doRemove in class DisplayControlImpl
Throws:
VisADException
RemoteException

toString

public String toString()
Description copied from class: ucar.unidata.idv.control.DisplayControlImpl
The toString method.

Overrides:
toString in class DisplayControlImpl
Returns:
The displayName

moveSelector

public void moveSelector(String id,
                         float wavenum)

updateSelector

public void updateSelector(String id,
                           float wavenum)

addSelector

protected void addSelector(LinearCombo.Selector selector)
                    throws Exception
Throws:
Exception

getMultiSpectralDisplay

protected MultiSpectralDisplay getMultiSpectralDisplay()
Specified by:
getMultiSpectralDisplay in class HydraControl

getSelectorCount

protected int getSelectorCount()

getSelectorIds

private Set<String> getSelectorIds(Map<String,Object> objMap)

mapNamesToThings

private Map<String,LinearCombo.Selector> mapNamesToThings(Map<String,Object> objMap)
Parameters:
objMap -
Returns:

getInitialWavenumber

public float getInitialWavenumber()

getBandNameMappings

public org.python.core.PyDictionary getBandNameMappings()

addCombination

public void addCombination(String name,
                           Data combo)

ranBlock

public void ranBlock(String line)
Called after Jython's internals have finished processing line (and before control is given back to the user).

This is where LinearCombo controls map Jython names to Java objects.

Specified by:
ranBlock in interface ConsoleCallback
Parameters:
line - The Jython block that was run.