## visad.util
Class ColorMapWidget

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JPanel
                      visad.util.SimpleColorMapWidget
                          visad.util.ColorMapWidget

All Implemented Interfaces:
  Accessible, ActionListener, ControlListener, EventListener, ImageObserver, MenuContainer, ScalarMapListener, Serializable

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 inherited from class javax.swing.JPanel
`JPanel.AccessibleJPanel`

Nested classes inherited from class javax.swing.JComponent
`JComponent.AccessibleJComponent`

Nested classes inherited from class java.awt.Container
`Container.AccessibleAWTContainer`

Nested classes inherited from class java.awt.Component
`Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy`

Field Summary
`(package private) BaseColorControl` `control`
`(package private) BaseColorControl` `realControl`

Fields inherited from class visad.util.SimpleColorMapWidget
`baseMap, preview, slider`

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.Container
``

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
`copy_table, getBaseMap, getPreview, getSlider, rebuildGUI, setTable, table_reorg, updateSlider`

Methods inherited from class javax.swing.JPanel
`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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`

Field Detail

### control

    BaseColorControl control

### realControl

    BaseColorControl realControl

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:
    `VisADException` - If there is a problem notifying this listener.
    `RemoteException` - If there was an RMI-related problem.

### main

    public static void main(String[] args)