gov.noaa.pmel.sgt
Class Layer

java.lang.Object
  |
  +--java.awt.Component
        |
        +--gov.noaa.pmel.sgt.Layer
All Implemented Interfaces:
java.lang.Cloneable, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class Layer
extends java.awt.Component
implements java.lang.Cloneable

A Layer contains a single Graph object and multiple LayerChild objects. There can be many Layer objects associated with each Pane object and the Layer objects can share Transform and Axis objects, but are not required to. The Layer is also where keys related to Color, Vectors, and Lines are attached. The can be at most one key of each type attached to a Layer.

The Layer object transforms physical coordinates to device coordinates. All objects that attach to a Layer use physical coordinates. The exception to this is the Graph object (and its children), since these objects transform user coordinates to physical coordinates.

The following is a simple example of using the Pane, Layer, and SGLabel objects together. In this example, the Pane and Layer objects are created such that, in the absence of any resizing, 100 pixels is equal to 1.0 physical units. Two labels are created, the first contains the current time and is located in the bottom left of the Layer. The second label is a title that is positioned near the top and centered.

 Pane pane;
 Layer layer;
 SGLabel title;
 SGLabel label;
 GeoDate stime;
 ...
 //
 // Instantiate Pane, Layer, and GeoDate objects.
 //
 pane = new Pane("test pane", new Dimension(400, 300));
 pane.setLayout(new StackedLayout());
 layer = new Layer("Test Layer", new Dimension2D(4.0, 3.0));
 stime = new GeoDate();
 //
 // Instatiate an SGLabel object as label, set its text to the
 // current time and position it near the lower-left corner
 // of the layer.
 //
 label = new SGLabel("test", stime.toString(), new Point2D.Double(0.05, 0.05));
 //
 // Set properties for label.
 //
 label.setAlign(SGLabel.BOTTOM, SGLabel.LEFT);
 label.setColor(Color.magenta);
 label.setHeightP(0.15);
 label.setFont(new Font("Dialog", Font.PLAIN, 10));
 //
 // Add label to layer.
 //
 layer.addChild(label);
 //
 // Instatiate an SGLabel object as title, set its text and position
 // it near the top of the layer and centered. Set the properties
 // for title.
 //
 title = new SGLabel("title", "SciGraph Test!", new Point2D.Double(2.125, 2.9));
 title.setAlign(SGLabel.TOP, SGLabel.CENTER);
 title.setHeightP(0.25);
 title.setFont(new Font("Helvetica", Font.BOLD, 14));
 //
 // Add title to layer and add layer to pane.
 //
 layer.addChild(title);
 pane.add(layer);
 

Since:
1.0
Version:
$Revision: 1.20 $, $Date: 2001/10/11 17:43:26 $
Author:
Donald Denbo
See Also:
Pane, Graph, ColorKey, SGLabel, LineKey, GeoDate, Serialized Form

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
Layer()
          Default constructor for Layer.
Layer(java.lang.String id)
          Create a Layer object.
Layer(java.lang.String id, Dimension2D psize)
          Create a Layer object.
 
Method Summary
 void addChild(LayerChild child)
          Add a LayerChild to the Layer.
 java.util.Enumeration childElements()
          Create a Enumeration for the LayerChild's associated with the Layer.
 Layer copy()
          Copy the Layer and its attached classes.
 Rectangle2D.Double getBoundsP()
          Get the Layer bounds in physical coordinates.
 LayerChild getChild(java.lang.String labid)
          Get a child associated with the Layer.
 Graph getGraph()
          Get the Graph attached to the layer.
 java.lang.String getId()
          Get the Layer identifier.
 AbstractPane getPane()
          Get the Pane the Layer is associated with.
 Dimension2D getSizeP()
          Get the Layer size in physical coordinates.
 double getXDtoP(int xd)
          Transform device units to physical for the x direction.
 int getXPtoD(double xp)
          Transform physical units to device for x coordinate.
 double getYDtoP(int yd)
          Transform device units to physical for the y direction.
 int getYPtoD(double yp)
          Transform physcial units to device for y coordinate.
 boolean isChildAttached(LayerChild child)
          Tests if a LayerChild is attached to the Layer.
 boolean isDataInLayer(java.lang.String id)
          Checks to see if a data id matches that data attached to the Graph.
 void modified(java.lang.String mess)
          Used internally by sgt.
 void removeAllChildren()
          Remove all LayerChild objects from the Layer.
 void removeChild(LayerChild child)
          Remove a LayerChild object from the Layer.
 void removeChild(java.lang.String labid)
          Remove a LayerChild object from the Layer.
 void setBounds(int x, int y, int w, int h)
          Set the bounds of the Layer in device units.
 void setBounds(java.awt.Rectangle bnds)
          Set the bounds of the Layer in device units.
 boolean setGraph(Graph gr)
          Associate a graph with the layer.
 void setId(java.lang.String id)
          Set the Layer identifier.
 void setLocation(int x, int y)
          Set the location of the Layer in device units.
 void setLocation(java.awt.Point pt)
          Set the location of the Layer in device units.
 void setSize(java.awt.Dimension sze)
          Set the size of the Layer in device units.
 void setSize(int w, int h)
          Set the size of the Layer in device units.
 void setSizeP(Dimension2D psize)
          Set the size of the Layer in physical coordinates.
 java.lang.String toString()
          Get a String representation of the Layer.
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, deliverEvent, disable, dispatchEvent, doLayout, enable, enable, enableInputMethods, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getInputContext, getInputMethodRequests, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getName, getParent, getPeer, getPreferredSize, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFont, setForeground, setLocale, setName, setVisible, show, show, size, transferFocus, update, validate
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Layer

public Layer(java.lang.String id)
Create a Layer object. The Layer is created with a default width and height equal to 1.0.
Parameters:
id - identifier for Layer

Layer

public Layer(java.lang.String id,
             Dimension2D psize)
Create a Layer object. The Layer is created with the specified dimensions and identifier.
Parameters:
id - identifier for Layer
psize - The physical dimensions of the Layer

Layer

public Layer()
Default constructor for Layer. The Layer is created with an empty identifier and a width and height equal to 1.0f.
Method Detail

setSize

public void setSize(java.awt.Dimension sze)
Set the size of the Layer in device units.
Overrides:
setSize in class java.awt.Component
Parameters:
sze - dimension of the Layer

setSize

public void setSize(int w,
                    int h)
Set the size of the Layer in device units.
Overrides:
setSize in class java.awt.Component
Parameters:
w - width of the Layer
h - height of the Layer

setLocation

public void setLocation(java.awt.Point pt)
Set the location of the Layer in device units.
Overrides:
setLocation in class java.awt.Component
Parameters:
pt - location of the Layer

setLocation

public void setLocation(int x,
                        int y)
Set the location of the Layer in device units.
Overrides:
setLocation in class java.awt.Component
Parameters:
x - horizontal location of the Layer
y - vertical location of the Layer

setBounds

public void setBounds(int x,
                      int y,
                      int w,
                      int h)
Set the bounds of the Layer in device units.
Overrides:
setBounds in class java.awt.Component
Parameters:
x - horizontal location of the Layer
y - vertical location of the Layer
w - width of the Layer
h - height of the Layer

setBounds

public void setBounds(java.awt.Rectangle bnds)
Set the bounds of the Layer in device units.
Overrides:
setBounds in class java.awt.Component
Parameters:
bnds - bounds of the Layer

getXPtoD

public int getXPtoD(double xp)
Transform physical units to device for x coordinate.
Since:
2.0

getYPtoD

public int getYPtoD(double yp)
Transform physcial units to device for y coordinate.
Since:
2.0

getXDtoP

public double getXDtoP(int xd)
Transform device units to physical for the x direction.
Parameters:
xd - device x coordinate
Returns:
physical x coordinate

getYDtoP

public double getYDtoP(int yd)
Transform device units to physical for the y direction.
Parameters:
yd - device y coordinate
Returns:
physical y coordinate

copy

public Layer copy()
Copy the Layer and its attached classes.

setGraph

public boolean setGraph(Graph gr)
Associate a graph with the layer. Only one graph or its children may be attached to a layer. Multiple graphs are created by using multiple layers.
Returns:
True if attachment was succesful
See Also:
Graph

getGraph

public Graph getGraph()
Get the Graph attached to the layer.
Returns:
Reference to the Graph.

addChild

public void addChild(LayerChild child)
Add a LayerChild to the Layer. Each Layer can contain as many children as needed.
Parameters:
child - A LayerChild
See Also:
SGLabel, LineKey, ColorKey, Ruler

removeChild

public void removeChild(LayerChild child)
                 throws ChildNotFoundException
Remove a LayerChild object from the Layer.
Parameters:
child - A ChildLayer object associated with the Layer
Throws:
ChildNotFoundException - The child is not associated with the Layer
See Also:
SGLabel, LineKey, ColorKey, Ruler

removeChild

public void removeChild(java.lang.String labid)
                 throws ChildNotFoundException
Remove a LayerChild object from the Layer.
Parameters:
id - An identifier for a LayerChild associated with the Layer
Throws:
ChildNotFoundException - The child is not associated with the Layer
See Also:
SGLabel, LineKey, ColorKey, Ruler

isChildAttached

public boolean isChildAttached(LayerChild child)
Tests if a LayerChild is attached to the Layer.
Since:
2.0

removeAllChildren

public void removeAllChildren()
Remove all LayerChild objects from the Layer.

getChild

public LayerChild getChild(java.lang.String labid)
                    throws ChildNotFoundException
Get a child associated with the Layer.
Parameters:
labid - A LayerChild object identifier
Throws:
ChildNotFoundException - The child is not associated with the Layer
See Also:
SGLabel, LineKey, ColorKey, Ruler

childElements

public java.util.Enumeration childElements()
Create a Enumeration for the LayerChild's associated with the Layer.
Returns:
Enumeration for the LayerChild objects.
See Also:
Enumeration, SGLabel, LineKey, ColorKey, Ruler

setSizeP

public void setSizeP(Dimension2D psize)
Set the size of the Layer in physical coordinates.
Parameters:
psize - The physical size of the Layer.

getSizeP

public Dimension2D getSizeP()
Get the Layer size in physical coordinates. This returns the physical coordinate size of the Layer.
Returns:
A Dimension2D containing the physical size of the Layer.
See Also:
Dimension2D

getBoundsP

public Rectangle2D.Double getBoundsP()
Get the Layer bounds in physical coordinates. The origin of the bounding rectangle, for a Layer, is always (0,0).
Returns:
A Rectangle2D.Double containing the physical bounds of the Layer.
See Also:
Rectangle2D.Double

getId

public java.lang.String getId()
Get the Layer identifier.
Returns:
The identifier.

setId

public void setId(java.lang.String id)
Set the Layer identifier.
Parameters:
id - identifier

getPane

public AbstractPane getPane()
Get the Pane the Layer is associated with.
Returns:
Refence to the Pane

modified

public void modified(java.lang.String mess)
Used internally by sgt.
Since:
2.0

toString

public java.lang.String toString()
Get a String representation of the Layer.
Overrides:
toString in class java.awt.Component
Returns:
String representation

isDataInLayer

public boolean isDataInLayer(java.lang.String id)
Checks to see if a data id matches that data attached to the Graph.
Since:
2.0


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