visad.cluster
Class TestSSCluster

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.ss.BasicSSCell
                      extended by visad.ss.FancySSCell
                          extended by visad.cluster.TestSSCluster
All Implemented Interfaces:
ActionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, DisplayListener, MessageListener, 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/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 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.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, 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, 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

TestSSCluster

public TestSSCluster(String name,
                     Frame parent)
              throws VisADException,
                     RemoteException
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