visad.util
Class ColorMapWidget

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by visad.util.SimpleColorMapWidget
                      extended by visad.util.ColorMapWidget
All Implemented Interfaces:
ActionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ControlListener, ScalarMapListener

public class ColorMapWidget
extends SimpleColorMapWidget
implements ActionListener, ControlListener, ScalarMapListener

A color widget that allows users to interactively map numeric data to RGB/RGBA tuples in a ScalarMap.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ColorMapWidget(ScalarMap smap)
          Construct a LabeledColorWidget linked to the color control in the ScalarMap (which must be to either Display.RGB or Display.RGBA and already have been added to a Display).
ColorMapWidget(ScalarMap smap, boolean immediate)
          Construct a LabeledColorWidget linked to the color control in the ScalarMap (which must be to either Display.RGB or Display.RGBA and already have been added to a Display).
ColorMapWidget(ScalarMap smap, float[][] table)
          Construct a LabeledColorWidget linked to the color control in the ScalarMap (which must be to either Display.RGB or Display.RGBA and already have been added to a Display).
ColorMapWidget(ScalarMap smap, float[][] table, boolean update)
          Construct a LabeledColorWidget linked to the color control in the ScalarMap (which must be to either Display.RGB or Display.RGBA and already have been added to a Display).
ColorMapWidget(ScalarMap smap, float[][] table, boolean update, boolean immediate)
          Construct a LabeledColorWidget linked to the color control in the ScalarMap (which must be to either Display.RGB or Display.RGBA and already have been added to a Display).
 
Method Summary
 void actionPerformed(ActionEvent evt)
          Handle button presses.
 void controlChanged(ControlEvent evt)
          Forward changes from the Control associated with this widget's ScalarMap to the internal shadow Control.
 void controlChanged(ScalarMapControlEvent evt)
          ScalarMapListener method used to detect new control.
 JPanel getButtonPanel()
          Return the panel in which the buttons are stored.
 float[][] getTableView()
          Gets the widget's current table.
static void main(String[] args)
           
 void mapChanged(ScalarMapEvent evt)
          If the ScalarMap changes, update the slider with the new range.
 void setTableView(float[][] table)
          Use a new table of color values.
 
Methods inherited from class visad.util.SimpleColorMapWidget
getBaseMap, getPreview, getSlider, setTable
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ColorMapWidget

public ColorMapWidget(ScalarMap smap)
               throws VisADException,
                      RemoteException
Construct a LabeledColorWidget linked to the color control in the ScalarMap (which must be to either Display.RGB or Display.RGBA and already have been added to a Display). It will be labeled with the name of the ScalarMap's RealType and linked to the ScalarMap's color control. The range of RealType values mapped to color is taken from the ScalarMap's range - this allows a color widget to be used with a range of values defined by auto-scaling from displayed data.

Parameters:
smap - ScalarMap to which this widget is bound.
Throws:
RemoteException - If there is an RMI-related problem.
VisADException - If there is a problem initializing the widget.

ColorMapWidget

public ColorMapWidget(ScalarMap smap,
                      boolean immediate)
               throws VisADException,
                      RemoteException
Construct a LabeledColorWidget linked to the color control in the ScalarMap (which must be to either Display.RGB or Display.RGBA and already have been added to a Display). It will be labeled with the name of the ScalarMap's RealType and linked to the ScalarMap's color control. The range of RealType values mapped to color is taken from the ScalarMap's range - this allows a color widget to be used with a range of values defined by auto-scaling from displayed data.

Parameters:
smap - ScalarMap to which this widget is bound.
immediate - true if changes are immediately propagated to the associated Control.
Throws:
RemoteException - If there is an RMI-related problem.
VisADException - If there is a problem initializing the widget.

ColorMapWidget

public ColorMapWidget(ScalarMap smap,
                      float[][] table)
               throws VisADException,
                      RemoteException
Construct a LabeledColorWidget linked to the color control in the ScalarMap (which must be to either Display.RGB or Display.RGBA and already have been added to a Display). It will be labeled with the name of the ScalarMap's RealType and linked to the ScalarMap's color control. The range of RealType values mapped to color is taken from the ScalarMap's range - this allows a color widget to be used with a range of values defined by auto-scaling from displayed data. The initial color table (if non-null) should be a float[resolution][dimension], where dimension is either 3 for Display.RGB or 4 for Display.RGB) with values between 0.0f and 1.0f.

Parameters:
smap - ScalarMap to which this widget is bound.
table - Initial color lookup table.
Throws:
RemoteException - If there is an RMI-related problem.
VisADException - If there is a problem initializing the widget.

ColorMapWidget

public ColorMapWidget(ScalarMap smap,
                      float[][] table,
                      boolean update)
               throws VisADException,
                      RemoteException
Construct a LabeledColorWidget linked to the color control in the ScalarMap (which must be to either Display.RGB or Display.RGBA and already have been added to a Display). It will be labeled with the name of the ScalarMap's RealType and linked to the ScalarMap's color control. The range of RealType values mapped to color is taken from the ScalarMap's range - this allows a color widget to be used with a range of values defined by auto-scaling from displayed data. The initial color table (if non-null) should be a float[resolution][dimension], where dimension is either 3 for Display.RGB or 4 for Display.RGB) with values between 0.0f and 1.0f.

Parameters:
smap - ScalarMap to which this widget is bound.
table - Initial color lookup table.
update - true if the slider should follow the ScalarMap's range.
Throws:
RemoteException - If there is an RMI-related problem.
VisADException - If there is a problem initializing the widget.

ColorMapWidget

public ColorMapWidget(ScalarMap smap,
                      float[][] table,
                      boolean update,
                      boolean immediate)
               throws VisADException,
                      RemoteException
Construct a LabeledColorWidget linked to the color control in the ScalarMap (which must be to either Display.RGB or Display.RGBA and already have been added to a Display). It will be labeled with the name of the ScalarMap's RealType and linked to the ScalarMap's color control. The range of RealType values mapped to color is taken from the ScalarMap's range - this allows a color widget to be used with a range of values defined by auto-scaling from displayed data. The initial color table (if non-null) should be a float[resolution][dimension], where dimension is either 3 for Display.RGB or 4 for Display.RGB) with values between 0.0f and 1.0f.

Parameters:
smap - ScalarMap to which this widget is bound.
table - Initial color lookup table.
update - true if the slider should follow the ScalarMap's range.
immediate - true if changes are immediately propagated to the associated Control.
Throws:
RemoteException - If there is an RMI-related problem.
VisADException - If there is a problem initializing the widget.
Method Detail

setTableView

public void setTableView(float[][] table)
Use a new table of color values. If immediate mode is off, changes to the associated color control are not applied until the Apply button is clicked.

Parameters:
table - New color values.

getTableView

public float[][] getTableView()
Gets the widget's current table. If immediate mode is off, it may not match the linked color control's table.


getButtonPanel

public JPanel getButtonPanel()
Return the panel in which the buttons are stored.


actionPerformed

public void actionPerformed(ActionEvent evt)
Handle button presses.

Specified by:
actionPerformed in interface ActionListener
Parameters:
evt - Data from the changed JButton.

controlChanged

public void controlChanged(ControlEvent evt)
                    throws RemoteException,
                           VisADException
Forward changes from the Control associated with this widget's ScalarMap to the internal shadow Control.

Specified by:
controlChanged in interface ControlListener
Parameters:
evt - Data from the changed Control.
Throws:
RemoteException
VisADException

mapChanged

public void mapChanged(ScalarMapEvent evt)
If the ScalarMap changes, update the slider with the new range.

Specified by:
mapChanged in interface ScalarMapListener
Parameters:
evt - Data from the changed ScalarMap.

controlChanged

public void controlChanged(ScalarMapControlEvent evt)
                    throws RemoteException,
                           VisADException
ScalarMapListener method used to detect new control.

Specified by:
controlChanged in interface ScalarMapListener
Parameters:
evt - the event
Throws:
RemoteException - If there was an RMI-related problem.
VisADException - If there is a problem notifying this listener.

main

public static void main(String[] args)