## visad.cluster
Class TestSSCluster

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JPanel
                      visad.ss.BasicSSCell
                          visad.ss.FancySSCell
                              visad.cluster.TestSSCluster

All Implemented Interfaces:
  Accessible, ActionListener, DisplayListener, EventListener, ImageObserver, MenuContainer, MessageListener, Serializable, SSCellListener

public class TestSSCluster
extends FancySSCell
implements ActionListener

TestSSCluster is the class for testing the visad.cluster package.

    If you want to run the demo yourself, download the latest VisAD,
    and also download the v5d file:

      ftp://www.ssec.wisc.edu/pub/visad-2.0/QLQ.v5d

    Then run the four commands:

      java visad.cluster.TestSSCluster 1 QLQ.v5d
      java visad.cluster.TestSSCluster 2 QLQ.v5d
      java visad.cluster.TestSSCluster 3 QLQ.v5d
      java visad.cluster.TestSSCluster 4 QLQ.v5d

    These create the four cluster nodes. Wait for all four to print
    both messages:

      v5d_type = (Time -> (((row, col, Height) -> QL), ((row, col, Height) -> Q)))
      data ready as (Time -> ((row, col, Height) -> (QL, Q)))

    Then run a fifth command for the client:

      java visad.cluster.TestSSCluster 0 QLQ.v5d

    As soon as the window pops up, you can click the "Widgets" button
    and when the widgets have initialized, slide the QL (cloud water)
    slider over to any value between 0.5 and 1.0. When the "please
    wait ..." message disappears in the 3-D window, click on the "Go"
    button to animate. Change animation rate by entering a new number
    of milliseonds per frame in the text box.

    Click on any combination of the "Res 1", "Res 2", "Res 3" and
    "Res 4" buttons to toggle between high and low resolution in each
    quadrant. Its interesting to click "Res 1", "Res 2" and "Res 4"
    but not "Res 3", which gives a sense of how this will be used
    in practice: looking at data from all but one node at low
    resolution. Of course, with a data set large enough for this to
    be necessary, the low resolution will not look so blocky,

    You can also click on the "Maps" button to get the SpreadSheet
    user interface for setting display mappings. After you click
    "Done", you'll need to click "Widgets" again to see the widgets
    that correspond to your new mappings.

    The display clearly shows the partition between quadrants. We
    could get rid of these breaks, but at least for the demo its
    nice to see where the spatial paritions are.

    Note these five JVMs running on one machine will eat a lot of
    memory and cycles.

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) int[]` `res`

Fields inherited from class visad.ss.FancySSCell
`AutoDetect, AutoShowControls, AutoSwitch, B_DIRECT, B_EMPTY, B_FORMULA, B_HIGHLIGHT, B_MULTI, B_REMOTE, B_RMI, B_UNKNOWN, B_URL, DARK_BLUE, DARK_CYAN, DARK_GREEN, DARK_PURPLE, DARK_RED, DARK_YELLOW, FileBox, Parent, Selected, WidgetFrame`

Fields inherited from class visad.ss.BasicSSCell

`ADD_DATA, ADD_SOURCE, CanDo3D, CellData, CollabID, DEBUG, DEBUG_LEVEL, defaultFM, Dim, DIRECT_SOURCE, DisplayEnabled, DListen, Errors, fm, FORMULA_SOURCE, HasDisplay, HasMappings, IsRemote, IsSlave, JAVA2D_2D, JAVA3D_2D, JAVA3D_3D, Loading, Lock, MAX_ID, MDisplay, messages, Name, NewClient, POLLING_INTERVAL, Possible3D, REMOTE_SOURCE, RemoteMDisplay, RemoteVDisplay, RemoteVServer, RemoteVSlave, REMOVE_DATA, RMI_SOURCE, Saving, Servers, SET_DIM, SET_ERRORS, SET_MAPS, SListen, SSCellVector, STATUS, UNKNOWN_SOURCE, UPDATE_DATA, UPDATE_DEPENDENCIES, URL_SOURCE, VDisplay, VDPanel`

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
`TestSSCluster(String name, Frame parent)`

Method Summary
`void` `actionPerformed(ActionEvent e)`
`protected String` `addData(int id, Data data, ConstantMap[] cmaps, String source, int type, boolean notify)` override method from BasicSSCell
`protected SSCellData` `addReferenceImpl(int id, DataReferenceImpl ref, ConstantMap[] cmaps, String source, int type, boolean notify, boolean checkErrors)` override method from BasicSSCell
`boolean` `constructDisplay()` override method from BasicSSCell
`static void` `main(String[] args)`
`void` `setMaps(ScalarMap[] maps)` override method from BasicSSCell

Methods inherited from class visad.ss.FancySSCell

`addMapDialog, autoDetectMappings, captureDialog, confirmClear, getAutoDetect, getAutoShowControls, getAutoSwitch, hasControls, hideWidgetFrame, loadDataDialog, loadDataRMI, loadDataSource, loadDataSource, loadDataString, loadDataURL, removeData, saveDataDialog, saveDataDialog, saveDataDialog, setAutoDetect, setAutoShowControls, setAutoSwitch, setBorderEnabled, setMapsAuto, setSelected, showWidgetFrame, smartClear, smartDestroy, ssCellChanged, waitForMaps`

Methods inherited from class visad.ss.BasicSSCell

`addData, addData, addDataSource, addDataSource, addDisplayListener, addReference, addReference, addSSCellChangeListener, addSSCellListener, addToRemoteServer, addVar, arraysEqual, canDo3D, captureImage, clearCell, clearDisplay, clearMaps, createVar, destroyCell, disable3D, displayChanged, enable3D, getCellDataByName, getData, getData, getDataCount, getDataRef, getDataSource, getDataSources, getDataSourceType, getDataSourceTypes, getDimension, getDisplay, getFilename, getFileURL, getFirstFreeId, getFirstVariableName, getFormula, getFormulaManager, getLastVariableName, getMaps, getName, getPartialSaveString, getReference, getReference, getReferences, getRemoteDataRef, getRemoteDisplay, getRemoteId, getRemoteReference, getRemoteReferences, getRMIAddress, getSaveString, getSSCellByName, getSSCellString, getVariableNames, hasData, hasDisplay, hasFormula, hasMappings, invoke, isRemote, isSaving, isSlave, loadData, loadData, loadRMI, makeLocal, othersDepend, othersDepend, possible3D, receiveMessage, removeAllListeners, removeAllReferences, removeAllReferences, removeAllReferences, removeAllSSCellListeners, removeData, removeDataImpl, removeDisplayListener, removeFromRemoteServer, removeListener, removeReference, removeSSCellListener, saveData, saveData, saveData, setData, setDimension, setDimension, setErrors, setFormula, setPartialSaveString, setSaveString, setSSCellString, setupClient, setupServer, stringsToTuple, tupleToStrings, waitForData, waitForData, waitForFormula`

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, 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

### res

    int[] res

Constructor Detail

### TestSSCluster

    public TestSSCluster(String name,
                         Frame parent)
                  throws VisADException,
                         RemoteException

Method Detail

### addData

    protected String addData(int id,
                             Data data,
                             ConstantMap[] cmaps,
                             String source,
                             int type,
                             boolean notify)
                      throws VisADException,
                             RemoteException

  override method from BasicSSCell

  Overrides:
    `addData` in class `BasicSSCell`
  Returns:
    Variable name of the newly added data.
  Throws:
    `VisADException`
    `RemoteException`

### addReferenceImpl

    protected SSCellData addReferenceImpl(int id,
                                          DataReferenceImpl ref,
                                          ConstantMap[] cmaps,
                                          String source,
                                          int type,
                                          boolean notify,
                                          boolean checkErrors)
                                   throws VisADException,
                                          RemoteException

  override method from BasicSSCell

  Overrides:
    `addReferenceImpl` in class `FancySSCell`
  Returns:
    The newly created SSCellData object.
  Throws:
    `VisADException`
    `RemoteException`

### setMaps

    public void setMaps(ScalarMap[] maps)
                 throws VisADException,
                        RemoteException

  override method from BasicSSCell

  Overrides:
    `setMaps` in class `FancySSCell`
  Throws:
    `VisADException`
    `RemoteException`

### constructDisplay

    public boolean constructDisplay()

  override method from BasicSSCell

  Overrides:
    `constructDisplay` in class `BasicSSCell`

### main

    public static void main(String[] args)
                     throws RemoteException,
                            VisADException,
                            IOException

  Throws:
    `RemoteException`
    `VisADException`
    `IOException`

### actionPerformed

    public void actionPerformed(ActionEvent e)

  Specified by:
    `actionPerformed` in interface `ActionListener`