gov.noaa.pmel.sgt
Class CartesianGraph

java.lang.Object
  |
  +--gov.noaa.pmel.sgt.Graph
        |
        +--gov.noaa.pmel.sgt.CartesianGraph
All Implemented Interfaces:
java.util.EventListener, java.beans.PropertyChangeListener

public class CartesianGraph
extends Graph

The CartesianGraph provides the transformation from user to physical coordinates. A Cartesian graph has horizontal and vertical transforms, from user to physical coordinates, that are independent. For example, yp = f(yu) and xp = g(xu), where f() and g() are the vertical and horizontal transformations. Multiple horizontal and vertical, X and Y, axes can be associated with a CartesianGraph and their mapping of user to physical coordinates is based on the AxisTransforms used. The CartesianGraph also provide the support for the rendering of data. The specific renderer is chosen based on the type of SGTData and the data Attribute used.

The following demonstrates how a CartesianGraph may be used.

   // Create a CartesianGraph and transforms.

    CartesianGraph graph;
    LinearTransform xt, yt;
    Range2D xPhysRange, xUserRange;
    Range2D yPhysRange, yUserRange;
    Point2D.Double origin;

    graph = new CartesianGraph("Point Graph");
    layer.setGraph(graph);
    xt = new LinearTransform(xPhysRange, xUserRange);
    yt = new LinearTransform(yPhysRange, yUserRange);
    graph.setXTransform(xt);
    graph.setYTransform(yt);
    origin = new Point2D.Double(xUserRange.start,
                                yUserRange.start);

     // Create the bottom axis, set its range in user units
     // and its origin. Add the axis to the graph.

    PlainAxis xbot;

    xbot = new PlainAxis("Botton Axis");
    xbot.setRangeU(xUserRange);
    xbot.setLocationU(origin);
    graph.addXAxis(xbot);

     // Create the left axis, set its range in user units
     // and its origin. Add the axis to the graph.

    PlainAxis yleft;

    yleft = new PlainAxis("Left Axis");
    yleft.setRangeU(yUserRange);
    yleft.setLocationU(origin);
    graph.addYAxis(yleft);

     // Create a PointAttribute for the display of the
     // Collection of points. The points will be marked 
     // with a red triangle and labelled at the NE corner
     // in blue.

    PointAttribute pattr;

    pattr = new PointAttribute(10, Color.red);

     // Associate the attribute and the point Collection
     // with the graph.

    graph.setData(col, pattr);
 

Since:
1.0
Version:
$Revision: 1.15 $, $Date: 2001/02/09 01:13:50 $
Author:
Donald Denbo

Constructor Summary
CartesianGraph()
          Default constructor.
CartesianGraph(java.lang.String id)
          CartesianGraph constructor.
CartesianGraph(java.lang.String id, AxisTransform xt, AxisTransform yt)
          Create a new CartesianGraph.
 
Method Summary
 void addXAxis(Axis axis)
          Add a X axis (Axis.HORIZONTAL) to the graph.
 void addXAxis(java.lang.String id, Axis axis)
          Add a X axis (Axis.HORIZONTAL) to the graph.
 void addYAxis(Axis axis)
          Add a Y axis (Axis.VERTICAL) to the graph.
 void addYAxis(java.lang.String id, Axis axis)
          Add a Y axis (Axis.VERTICAL) to the graph.
 Graph copy()
          Create a copy of the CartesianGraph
 void draw(java.awt.Graphics g)
          Draw the graph, axes, and render the data.
 int getNumberXAxis()
          Get the number of X axes associated with the graph.
 int getNumberYAxis()
          Get the number of Y axes associated with the graph.
 CartesianRenderer getRenderer()
          Get the renderer instance being used by the graph.
 Axis getXAxis(java.lang.String id)
          Get a reference to an X axis.
 GeoDate getXPtoTime(double p)
          Transform physical X coordinate to time.
 double getXPtoU(double p)
          Transform physical X coordinate to user coordinate.
 AxisTransform getXTransform()
          Get the current X AxisTransform.
 int getXUtoD(double u)
          Transform user X coordinate to device coordinate.
 int getXUtoD(GeoDate t)
          Transform GeoDate to device coordinate.
 double getXUtoP(double u)
          Transform user X coordinate to physical coordinate.
 double getXUtoP(GeoDate t)
          Transform GeoDate to physical coordinate.
 Axis getYAxis(java.lang.String id)
          Get a reference to an Y axis.
 GeoDate getYPtoTime(double p)
          Transform physical Y coordinate to time.
 double getYPtoU(double p)
          Transform physical Y coordinate to user coordinate.
 AxisTransform getYTransform()
          Get the current Y AxisTransform.
 int getYUtoD(double u)
          Transform user Y coordinate to device coordinate
 int getYUtoD(GeoDate t)
          Transform time to device coordinate.
 double getYUtoP(double u)
          Transoform user Y coordinate to physical coordinate.
 double getYUtoP(GeoDate t)
          Transform time to physical coordinate.
 boolean isClipping()
          Test the clipping property.
 void propertyChange(java.beans.PropertyChangeEvent evt)
          This method gets called when a bound property is changed.
 void removeAllXAxes()
          Remove all X axes from the graph.
 void removeAllYAxes()
          Remove all Y axes from the graph.
 void removeXAxis(Axis axis)
          Remove an X axis from the graph.
 void removeXAxis(java.lang.String id)
          Remove an X axis from the graph.
 void removeYAxis(Axis axis)
          Remove an Y axis from the graph.
 void removeYAxis(java.lang.String id)
          Remove an Y axis from the graph.
 void setClip(double xmin, double xmax, double ymin, double ymax)
          Set the clipping rectangle in user coordinates.
 void setClip(GeoDate tmin, GeoDate tmax, double min, double max)
          Set the clipping rectangle in user coordinates.
 void setClip(SoTRange xr, SoTRange yr)
          Set the clipping rectangle in user coordinates.
 void setClipping(boolean clip)
          Set the clipping property.
 void setData(SGTData data, Attribute attr)
          Associates SGTData and Attribute with the CartesianGraph.
 void setRenderer(CartesianRenderer rend)
          Set the renderer used by the graph.
 void setXTransform(AxisTransform xfrm)
          Set the X AxisTransform.
 void setYTransform(AxisTransform xfrm)
          Set the Y AxisTransform.
 java.util.Enumeration xAxisElements()
          Get an Enumeration object for the X axes.
 java.util.Enumeration yAxisElements()
          Get an Enumeration object for the Y axes.
 
Methods inherited from class gov.noaa.pmel.sgt.Graph
computeRange, computeRange, computeRange, getId, getLayer, getPane, modified, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CartesianGraph

public CartesianGraph()
Default constructor.

CartesianGraph

public CartesianGraph(java.lang.String id)
CartesianGraph constructor. Creates default unity transforms.
Parameters:
id - CartesianGraph identifier

CartesianGraph

public CartesianGraph(java.lang.String id,
                      AxisTransform xt,
                      AxisTransform yt)
Create a new CartesianGraph. Sets the identifier and sets the x and y transforms.
Parameters:
id - identifier
xt - x transform
yt - y transform
Method Detail

copy

public Graph copy()
Create a copy of the CartesianGraph
Overrides:
copy in class Graph

setData

public void setData(SGTData data,
                    Attribute attr)
Associates SGTData and Attribute with the CartesianGraph. A renderer is constucted based on the two arguements.

SGTData

Attribute

CartesianRenderer

SGTPoint PontAttribute PointCartesianRenderer
SGTLine LineAttribute LineCartesianRenderer
SGTGrid GridAttribute GridCartesianRenderer
Collection PointAttribute PointCartesianRenderer
Collection LineAttribute LineCartesianRenderer

Parameters:
data - data to be rendered
attr - rendering style information
See Also:
CartesianRenderer.getRenderer(gov.noaa.pmel.sgt.CartesianGraph, gov.noaa.pmel.sgt.dm.SGTData, gov.noaa.pmel.sgt.Attribute)

getRenderer

public CartesianRenderer getRenderer()
Get the renderer instance being used by the graph.
Returns:
renderer

setRenderer

public void setRenderer(CartesianRenderer rend)
Set the renderer used by the graph.
Parameters:
rend - a renderer object

draw

public void draw(java.awt.Graphics g)
Draw the graph, axes, and render the data. This method should not be directly called.
See Also:
Pane.draw()

setClip

public void setClip(double xmin,
                    double xmax,
                    double ymin,
                    double ymax)
Set the clipping rectangle in user coordinates.
Parameters:
xmin - minimum horizontal coordinate
xmax - maximum horizontal coordinate
ymin - minimum vertical coordinate
ymax - maximum vertical coordinate

setClip

public void setClip(GeoDate tmin,
                    GeoDate tmax,
                    double min,
                    double max)
Set the clipping rectangle in user coordinates.
Parameters:
tmin - mimimum time
tmax - maximum time
min - miminum user coordinate
max - maximum user coordinate

setClip

public void setClip(SoTRange xr,
                    SoTRange yr)
Set the clipping rectangle in user coordinates.
Since:
2.0

setClipping

public void setClipping(boolean clip)
Set the clipping property.
Parameters:
clip - clipping

isClipping

public boolean isClipping()
Test the clipping property.
Returns:
true if clipping is active

addXAxis

public void addXAxis(java.lang.String id,
                     Axis axis)
Add a X axis (Axis.HORIZONTAL) to the graph.
Parameters:
id - axis identifier
axis - X axis
See Also:
Axis, PlainAxis

addXAxis

public void addXAxis(Axis axis)
Add a X axis (Axis.HORIZONTAL) to the graph. Uses the existing axis identifier.
Parameters:
axis - X axis
See Also:
Axis, PlainAxis

getXAxis

public Axis getXAxis(java.lang.String id)
              throws AxisNotFoundException
Get a reference to an X axis.
Parameters:
id - axis identifier
Returns:
axis found
Throws:
AxisNotFoundException - An axis was not found with the correct identifier.
See Also:
Axis, PlainAxis

removeXAxis

public void removeXAxis(java.lang.String id)
                 throws AxisNotFoundException
Remove an X axis from the graph.
Parameters:
id - axis identifier
Throws:
AxisNotFoundException - An axis was not found with the correct identifier.
See Also:
Axis, PlainAxis

removeXAxis

public void removeXAxis(Axis axis)
                 throws AxisNotFoundException
Remove an X axis from the graph.
Throws:
AxisNotFoundException - An axis was not found with the correct identifier.
See Also:
Axis, PlainAxis

removeAllXAxes

public void removeAllXAxes()
Remove all X axes from the graph.

getNumberXAxis

public int getNumberXAxis()
Get the number of X axes associated with the graph.
Returns:
number of axes
See Also:
Axis, PlainAxis

xAxisElements

public java.util.Enumeration xAxisElements()
Get an Enumeration object for the X axes.
Returns:
enumeration

addYAxis

public void addYAxis(java.lang.String id,
                     Axis axis)
Add a Y axis (Axis.VERTICAL) to the graph.
Parameters:
id - axis identifier
axis - Y axis
See Also:
Axis, PlainAxis

addYAxis

public void addYAxis(Axis axis)
Add a Y axis (Axis.VERTICAL) to the graph. Uses the existing axis identifier.
Parameters:
axis - Y axis
See Also:
Axis, PlainAxis

getYAxis

public Axis getYAxis(java.lang.String id)
              throws AxisNotFoundException
Get a reference to an Y axis.
Parameters:
id - axis identifier
Returns:
axis found
Throws:
AxisNotFoundException - An axis was not found with the correct identifier.
See Also:
Axis, PlainAxis

removeYAxis

public void removeYAxis(java.lang.String id)
                 throws AxisNotFoundException
Remove an Y axis from the graph.
Parameters:
id - axis identifier
Throws:
AxisNotFoundException - An axis was not found with the correct identifier.
See Also:
Axis, PlainAxis

removeYAxis

public void removeYAxis(Axis axis)
                 throws AxisNotFoundException
Remove an Y axis from the graph.
Throws:
AxisNotFoundException - An axis was not found with the correct identifier.
See Also:
Axis, PlainAxis

removeAllYAxes

public void removeAllYAxes()
Remove all Y axes from the graph.

getNumberYAxis

public int getNumberYAxis()
Get the number of Y axes associated with the graph.
Returns:
number of axes
See Also:
Axis, PlainAxis

yAxisElements

public java.util.Enumeration yAxisElements()
Get an Enumeration object for the Y axes.
Returns:
enumeration

setXTransform

public void setXTransform(AxisTransform xfrm)
Set the X AxisTransform. This transform is used to convert to and from user to physical coordinates.
Parameters:
xfrm - X transform
See Also:
AxisTransform, LinearTransform

getXTransform

public AxisTransform getXTransform()
Get the current X AxisTransform.
Returns:
X Transform
See Also:
AxisTransform, LinearTransform

setYTransform

public void setYTransform(AxisTransform xfrm)
Set the Y AxisTransform. This transform is used to convert to and from user to physical coordinates.
Parameters:
xfrm - Y transform
See Also:
AxisTransform, LinearTransform

getYTransform

public AxisTransform getYTransform()
Get the current Y AxisTransform.
Returns:
Y Transform
See Also:
AxisTransform, LinearTransform

getXUtoP

public double getXUtoP(double u)
Transform user X coordinate to physical coordinate.
Since:
2.0

getXUtoD

public int getXUtoD(double u)
Transform user X coordinate to device coordinate.
Since:
2.0

getXUtoP

public double getXUtoP(GeoDate t)
Transform GeoDate to physical coordinate.
Since:
2.0

getXUtoD

public int getXUtoD(GeoDate t)
Transform GeoDate to device coordinate.
Since:
2.0

getXPtoU

public double getXPtoU(double p)
Transform physical X coordinate to user coordinate.
Parameters:
p - physical coorindate
Returns:
user coordinate

getXPtoTime

public GeoDate getXPtoTime(double p)
Transform physical X coordinate to time.
Parameters:
p - physical coordinate
Returns:
time

getYUtoP

public double getYUtoP(double u)
Transoform user Y coordinate to physical coordinate.
Since:
2.0

getYUtoD

public int getYUtoD(double u)
Transform user Y coordinate to device coordinate
Since:
2.0

getYUtoP

public double getYUtoP(GeoDate t)
Transform time to physical coordinate.
Since:
2.0

getYUtoD

public int getYUtoD(GeoDate t)
Transform time to device coordinate.
Since:
2.0

getYPtoU

public double getYPtoU(double p)
Transform physical Y coordinate to user coordinate.
Parameters:
p - physical coorindate
Returns:
user coordinate

getYPtoTime

public GeoDate getYPtoTime(double p)
Transform physical Y coordinate to time.
Parameters:
p - physical coordinate
Returns:
time

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent evt)
Description copied from interface: java.beans.PropertyChangeListener
This method gets called when a bound property is changed.
Following copied from interface: java.beans.PropertyChangeListener
Parameters:
evt - A PropertyChangeEvent object describing the event source and the property that has changed.


Send comments about the Scientific Graphics toolkit to dwd@pmel.noaa.gov. For more information about Java Development in the EPIC Group see the EPIC Software Page
Generated on December 13 2001