edu.wisc.ssec.mcidasv.data.hydra
Class CurveDrawer

java.lang.Object
  extended by ucar.visad.display.Displayable
      extended by ucar.visad.display.DisplayableData
          extended by ucar.visad.display.LineDrawing
              extended by edu.wisc.ssec.mcidasv.data.hydra.CurveDrawer

public class CurveDrawer
extends LineDrawing

Provides support for a Displayable that comprises a set of drawn curves. The curves can be drawn in in spherical and other non-Cartesian coordinate systems by selecting the appropriate RealTypes or RealTupleType.

Sample usage:

  CurveDrawer curveDraw =
      new CurveDrawer(RealType.Latitude, RealType.Longitude);
  curveDraw.addAction(new ActionImpl() {
      public void doAction()
          throws VisADException, RemoteException
      {
          UnionSet curves = curveDraw.getData();
          (do something useful with the curves)
      }
  });
 

Version:
$Revision$
Author:
Don Murray

Nested Class Summary
 
Nested classes/interfaces inherited from class ucar.visad.display.DisplayableData
DisplayableData.DragAdapter
 
Field Summary
private  DataRenderer curver
          data renderer
private  UnionSet curves
          the set of drawn curves
private  int mask
          mask for mouse events
private  RealTupleType type
          The type for the drawing space
 
Fields inherited from class ucar.visad.display.LineDrawing
COLOR, LINE_STYLE, LINE_WIDTH, POINT_SIZE
 
Fields inherited from class ucar.visad.display.DisplayableData
MANIPULABLE, renderer, VISIBLE
 
Fields inherited from class ucar.visad.display.Displayable
DISPLAY, parent, SCALAR_MAP_SET
 
Constructor Summary
protected CurveDrawer(CurveDrawer that)
          Constructor for creating a CurveDrawer from another instance
  CurveDrawer(RealTupleType type)
          Construct a CurveDrawer using the RealTupleType
  CurveDrawer(RealTupleType type, int mask)
          Construct a CurveDrawer using the RealTupleType of the drawing space and a mask for the mouse
  CurveDrawer(RealType xType, RealType yType)
          Construct a CurveDrawer using xType as the X coordinate and yType as the Y coordinate of the box.
  CurveDrawer(RealType xType, RealType yType, int mask)
          Construct a CurveDrawer using xType as the X coordinate and yType as the Y coordinate of the box.
  CurveDrawer(UnionSet curves)
          Construct a CurveDrawer with a predefined set of curves.
  CurveDrawer(UnionSet curves, int mask)
          Construct a CurveDrawer with a predefined set of curves.
 
Method Summary
 Displayable cloneForDisplay()
          Returns a clone of this instance suitable for another VisAD display.
protected  void dataChange()
          Invoked when box mouse is released.
 UnionSet getCurves()
          Return the curves of the CurveDrawer.
protected  DataRenderer getDataRenderer()
          Returns the DataRenderer for this displayable.
 boolean getDrawingEnabled()
          Set whether the curves are manipulable or not.
 void setCurves(UnionSet curves)
          Set the curves of the CurveDrawer.
 void setDrawingEnabled(boolean b)
          Set whether the curves are manipulable or not.
 
Methods inherited from class ucar.visad.display.LineDrawing
getColor, getLineStyle, getLineWidth, getPointSize, setColor, setHSV, setHSV, setLineStyle, setLineWidth, setPointSize, setRGB, setRGB, setRGBA, setRGBA
 
Methods inherited from class ucar.visad.display.DisplayableData
addAction, destroy, getActive, getAnimationSet, getData, getName, hasData, hasDataObject, isManipulable, isPickable, myAddConstantMaps, myAddDataReferences, myRemoveDataReferences, removeAction, setActive, setData, setDataReference, setDragAdapter, setManipulable, setPickable, setPointMode, setUseFastRendering, setVisible, showme, toString
 
Methods inherited from class ucar.visad.display.Displayable
addConstantMap, addConstantMaps, addDataReferences, addPropertyChangeListener, addPropertyChangeListener, addRefsInvoked, addScalarMap, addScalarMaps, applyColorUnit, applyDisplayUnit, checkUnit, combineConstantMaps, destroyDisplayable, firePropertyChange, firePropertyChange, fireScalarMapSetChange, getColorUnit, getConstantMaps, getDestroyed, getDisplay, getDisplayMaster, getDisplayUnit, getPointMode, getScalarMap, getScalarMap, getScalarMap, getScalarMapSet, getUseFastRendering, getUseTimesInAnimation, getVisible, isActive, isUnitCompatible, isVisible, logException, removeConstantMap, removeDataReferences, removePropertyChangeListener, removePropertyChangeListener, removeScalarMap, replaceScalarMap, setAdjustFlow, setColorPalette, setColorPalette, setColorUnit, setConstantPosition, setContourInfo, setDisplay, setDisplayActive, setDisplayInactive, setDisplayMaster, setDisplayUnit, setOverrideAnimationSet, setOverrideAnimationSet, setParent, setRangeForColor, setRangeForColor, setScalarMapSet, setSelectedRange, setSelectedRange, setUseTimesInAnimation, toFront
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

type

private RealTupleType type
The type for the drawing space


curves

private UnionSet curves
the set of drawn curves


mask

private int mask
mask for mouse events


curver

private DataRenderer curver
data renderer

Constructor Detail

CurveDrawer

public CurveDrawer(RealType xType,
                   RealType yType)
            throws VisADException,
                   RemoteException
Construct a CurveDrawer using xType as the X coordinate and yType as the Y coordinate of the box.

Parameters:
xType - RealType of the X coordinate of the box
yType - RealType of the Y coordinate of the box
Throws:
VisADException - VisAD error
RemoteException - Remote error

CurveDrawer

public CurveDrawer(RealType xType,
                   RealType yType,
                   int mask)
            throws VisADException,
                   RemoteException
Construct a CurveDrawer using xType as the X coordinate and yType as the Y coordinate of the box.

Parameters:
xType - RealType of the X coordinate of the box
yType - RealType of the Y coordinate of the box
mask - key mask to use for mouse button
Throws:
VisADException - VisAD error
RemoteException - Remote error

CurveDrawer

public CurveDrawer(RealTupleType type)
            throws VisADException,
                   RemoteException
Construct a CurveDrawer using the RealTupleType

Parameters:
type - RealTupleType of the drawing space
Throws:
VisADException - VisAD error
RemoteException - Remote error

CurveDrawer

public CurveDrawer(RealTupleType type,
                   int mask)
            throws VisADException,
                   RemoteException
Construct a CurveDrawer using the RealTupleType of the drawing space and a mask for the mouse

Parameters:
type - RealTupleType of the drawing space
mask - key mask to use for mouse button
Throws:
VisADException - VisAD error
RemoteException - Remote error

CurveDrawer

public CurveDrawer(UnionSet curves)
            throws VisADException,
                   RemoteException
Construct a CurveDrawer with a predefined set of curves.

Parameters:
curves - UnionSet of curves
Throws:
VisADException - VisAD error
RemoteException - Remote error

CurveDrawer

public CurveDrawer(UnionSet curves,
                   int mask)
            throws VisADException,
                   RemoteException
Construct a CurveDrawer with a predefined set of curves.

Parameters:
curves - UnionSet of curves
mask - key mask to use for mouse button
Throws:
RemoteException - Java RMI error
VisADException - problem creating VisAD object

CurveDrawer

protected CurveDrawer(CurveDrawer that)
               throws VisADException,
                      RemoteException
Constructor for creating a CurveDrawer from another instance

Parameters:
that - other instance
Throws:
VisADException - VisAD error
RemoteException - Remote error
Method Detail

dataChange

protected void dataChange()
                   throws VisADException,
                          RemoteException
Invoked when box mouse is released. Subclasses should invoke super.dataChange() to ensure the the curves are set.

Overrides:
dataChange in class DisplayableData
Throws:
RemoteException - Java RMI error
VisADException - problem creating VisAD object

getCurves

public UnionSet getCurves()
Return the curves of the CurveDrawer. The UnionSet that is returned contains the lines.

Returns:
set containing sets of curves

setCurves

public void setCurves(UnionSet curves)
               throws VisADException,
                      RemoteException
Set the curves of the CurveDrawer. The input must have the same MathType as this instance.

Parameters:
curves - set of curves to display
Throws:
RemoteException - Java RMI error
VisADException - problem creating VisAD object

setDrawingEnabled

public void setDrawingEnabled(boolean b)
                       throws VisADException,
                              RemoteException
Set whether the curves are manipulable or not.

Parameters:
b - true to enable
Throws:
RemoteException - Java RMI error
VisADException - problem creating VisAD object

getDrawingEnabled

public boolean getDrawingEnabled()
Set whether the curves are manipulable or not.

Returns:
true if drawing is enabled

cloneForDisplay

public Displayable cloneForDisplay()
                            throws RemoteException,
                                   VisADException
Returns a clone of this instance suitable for another VisAD display. Underlying data objects are not cloned.

Overrides:
cloneForDisplay in class DisplayableData
Returns:
A semi-deep clone of this instance.
Throws:
VisADException - VisAD failure.
RemoteException - Java RMI failure.

getDataRenderer

protected DataRenderer getDataRenderer()
Returns the DataRenderer for this displayable. This method does not verify that the VisAD display has been set.

Overrides:
getDataRenderer in class DisplayableData
Returns:
The DataRenderer associated with this displayable.