Scientific Graphics Toolkit (sgt) Version 3.0
                      SGT Beans Initial Release
			    Release Notes

$Id: RELEASE-NOTES-3.0.txt,v 1.4 2003/09/19 23:14:24 dwd Exp $

Introduction:
-------------

This document describes the changes in the Scientific Graphics Toolkit
from version 2.1 to 3.0 and introduces the first release of SGT Beans.

Bug reports, comments, and suggestions can be sent to
Donald.W.Denbo@noaa.gov, sgt@epic.noaa.gov or preferrably reported 
using the Mantis system at http://heron.pmel.noaa.gov:8082/mantis. 

New Features:
-------------

The biggest new feature is the initial delivery of SGT Beans. The
three main beans Page, PanelModel, and DataModel can be used to
produce graphics more easily. These beans also enable a user to more
easily change the layout of existing graphics. [I will be making a
tutorial available in about 2 months.] 

New classes have been added to support graphical annotation.  And a
new GeoDateArray class has been added to improve performance.

Bug Fixes:
----------

To many to list.  The major fixes include using repaint() internally
to make the drawing more robust. Problems with placing multiple JPanes
in a single JFrame have been addressed and printing has been updated
to work after the above bug fixes :-).  

Known Existing Problems:
------------------------

SGT Beans require jdk 1.4.  This requirement is because I use
XMLEncoder to serialize SGT Beans.

The JRealTimeDemo demonstrates a problem that occurs when SGT is
forced to redraw too rapidly.  On Solaris, the JPanel goes blank until
the repainting is done.

Printing SGT Beans with titled borders cause the graphic to be shifted
down but not rescaled.  The result is the border overplot on the
graphic.

The Page SGT Bean doesn't account for the extra space a pixel
rendering requires, causing the pixels to overlap the axes.

Future Features:
---------------

Presently SGT Beans don't use a LayoutManager to position Panels on
the Page.  I will be developing the interface and visual customization
classes necessary to support SpringLayout. Eventually :-(.

Deprecated Classes:
------------------

The following classes are now deprecated and will be removed at some
future sgt release.

gov.noaa.pmel.sgt.Pane -- use gov.noaa.pmel.sgt.JPane
gov.noaa.pmel.sgt.swing.JLineProfileLayout -- use gov.noaa.pmel.sgt.swing.JPlotLayout

in gov.noaa.pmel.util:

SoTRange.GeoDate -- use SoTRange.Time
SoTValue.GeoDate -- use SoTValue.Time
TimePoint -- use SoTPoint
TimeRange -- use SoTRange

New Packages:
-------------

gov.noaa.pmel.sgt.beans

New Classes:
------------
For details see the JavaDoc.

gov.noaa.pmel.sgt
	AnnotationCartesianRenderer
	AttributeChangeEvent
	DataKey
	LayerControl
	NegativeLogException

gov.noaa.pmel.sgt.demo
	JLogLogDemo
	BeanDemo

gov.noaa.pmel.sgt.dm
	Annotation
	Annote
	SGT3DVector

gov.noaa.pmel.sgt.swing.prop
	ColorDialog
	ColorEntryPanel
	RulerDialog

gov.noaa.pmel.swing
	FocusableSwatch
	MRJUtil
	Swatch
	SwatchGroup
	ThreeDotsButton
	ThreeDotsIcon

gov.noaa.pmel.util
	EPICSystem
	GeoDateArray
	SimpleFileFilter

New Methods and Constructors:
-----------------------------
For details see the JavaDoc.

gov.noaa.pmel.sgt
	AbstractPane 
	  new fields
            DEFAULT_SCALE
	    TO_FIT
	    SHRINK_TO_FIT
	  new methods
	    Object[] getObjectsAt(int x,int y),
	    Object[] getObjectsAt(Point pt)
	    Point getZoomStart()
	    void setMouseEventsEnabled(boolean en)
	    boolean isMouseEventsEnabled()
	    void setPageScaleMode(int mode)
	    int getPageScaleMode()

	Attribute
	  new methods
	    void setId(String id)
	    String getId()
	    void setBatch(boolean batch)
	    void setBatch(boolean batch, boolean local)
	    boolean isBatch()

	Axis	    
          new methods
	    void setLineColor(Color color)
	    Color getLineColor()

	AxisTransform
	  new constructors
	    AxisTransform(double p1, double p2, long t1, long t2)
	  new methods
	    double getTransP(long t)
	    long getLongTimeTransU(double p)

	CLIndexedColorMap
	  new methods
	    Color getColorByIndex(int indx)

	CartesianGraph
	  new methods
	    void setClip(long tmin, long tmax, double min, double max)
	    double getXUtoD2(double u)
	    double getYUtoD2(double u)
	    double getXUtoP(long t)
	    double getYUtoP(long t)
	    int getXUtoD(long t)
	    int getYUtoD(long t)
	    double getXUtoD2(GeoDate t)
	    double getYUtoD2(GeoDate t)
	    double getXUtoD2(long t)
	    double getYUtoD2(long t)
	    int getXUtoD(SoTValue val)
	    int getYUtoD(SoTValue val)
	    double getXUtoD2(SoTValue val)
	    double getYUtoD2(SoTValue val)
	    double getXUtoP(SoTValue val)
	    double getYUtoP(SoTValue val)
	    SoTValue getXPtoSoT(double p)
	    SoTValue getYPtoSoT(double p)
	    long getXPtoLongTime(double p)
	    long getYPtoLongTime(double p)
	    SoTPoint getPtoU(Point2D.Double loc)
	    SGTData getDataAt(Point pt)

	CartesianRenderer
	  new methdos
	    SGTData getDataAt(int x, int y)
	    SGTData getDataAt(Point pt)

	ColorKey
	  Fixed vertical orientation.
	  new constructor
	    ColorKey(Point2D.Double pt, Dimension2D size, int valign, int halign)
	  new methods
	    void addGraph(CartesianRenderer rend, SGLabel label)
	    void setColumns(int col)
	    void setLineLengthP(double len)

	ColorMap
	  new methods
	    void setBatch(boolean batch)
	    void setBatch(boolean batch, boolean local)
	    boolean isBatch()

	Graph
	  new methods
	    SGTData getDataAt(Point pt)

	GridAttribute
	  new methods
	    void setId(String id)
	    String getId()
	    void setBatch(boolean batch)
	    void setBatch(boolean batch, boolean local)
	    boolean isBatch()

	GridCartesianRenderer
	  new methdos
	    SGTData getDataAt(Point pt) - unimplemented

	IndexedColor
	  new methods
	    Color getColorByIndex(int index)

	IndexedColorMap
	  new methods
	    Color getColorByIndex(int index)

	JPane
	  new methods
	    String getVersion()
	    Point getZoomStart()
	    Object[] getObjectsAt(int x, int y)
	    Object[] getObjectsAt(Point pt)
	    void setMouseEventsEnabled(boolean enable)
	    boolean isMouseEventsEnabled()
	    void setPageScaleMode(int mode)
	    int getPageScaleMode()

	Layer
	  new methods
	    double getXPtoD2(double xp)
	    double getYPtoD2(double yp)
	    LayerChild findChild(String id)
	    Iterator childIterator()
	    LayerChild[] getChildren()
	    Object[] getObjectsAt(int x, int y, boolean check)

	LayerContainer - unimplemented

	LayerStack - unimplemented

	LineAttribute
	  new methods
	    boolean  equals(Object obj)
	    void setId(String id)
	    String getId()
	    void setBatch(boolean batch)
	    void setBatch(boolean batch, boolean local)
	    boolean isBatch()

	LineCartesianRenderer
	  new methods
	    SGTData getDataAt(Point pt) - unimplemented

	LineKey
	  new methods
	    void addGraph(CartesianRenderer rend, SGLabel label)

	LinearTransform
	  new methods
	    double getTransP(long t)
	    long  getLongTimeTransU(double p)

	LogAxis - new implementation

	LogTransform - new implementation

	Pane
	  mew methods
	    String getVersion()
	    Point getZoomStart()
	    Object[] getObjectsAt(int x, int y)
	    Object[] getObjectsAt(point pt)
	    void setMouseEventsEnabled(boolean enable)
	    boolean isMouseEventsEnabled()
	    void setPageScaleMode(int mode)
	    int getPageScaleMode()

	PaneProxy
	  new methods
	    String getVersion()
	    Object[] getObjectsAt(int x, int y)
	    void setMouseEventsEnabled(boolean enable)
	    boolean isMouseEventsEnabled()

	PointAttribute
	  new methods
	    boolean equals(Object obj)
	    void setId(String id)
	    String getId()
	    void setBatch(boolean batch)
	    void setBatch(boolean batch, boolean local)
	    boolean isBatch()

	PointCartesianRenderer
	  new methods
	    SGTData getDataAt(Point pt) - unimplemented

	PointCollectionKey
	  new methods
	    void addGraph(CartesianRenderer rend, SGLabel label)

	Ruler
	  new methods
	    int getLabelInterval()
	    void setLabelInterval(int interval)
	    int getSignificantDigits()
	    void setSignificantDigist(int sig)
	    String getLabelFormat()
	    void setLabelFormat(String format)
	    Color getLabelColor()
	    void setLabelColor(Color color)
	    Color getLineColor()
	    void setLineColor(Color color)

	SGLabel
	  new methods
	    boolean equals(Object obj)

	VectorAttribute
	  new methods
	    void setId(String id)
	    String getId()
	    void setBatch(boolean batch)
	    void setBatch(boolean batch, boolean local)
	    boolean isBatch()

	VectorCartesianRenderer
	  new methods
	    SGTData getDataAt(Point pt) - unimplemented

	VectorKey
	  new methods
	    void setLineLengthP(double len)
	    void addGraph(CartesianRenderer rend, SGLabel label)

gov.noaa.pmel.sgt.beans
	all new package

gov.noaa.pmel.sgt.contour

gov.noaa.pmel.sgt.demo

gov.noaa.pmel.sgt.dm
	SGTGrid
	  new methods
	    GeoDateArray getGeoDateArray()
	    GeoDateArray getGeoDateArrayEdges()

	SGTLine
	  new methods
	    GeoDateArray getGeoDateArray()

	SGTPoint
	  new methods
	    long getLongTime()

	SGTTuple

	SGTVector

	SimpleGrid
	  new methods
	    GeoDateArray getGeoDateArray()
	    GeoDateArray getGeoDateArrayEdges()
	    void setTimeEdges(GeoDateArray tarray)
	    void setTimeArray(GeoDateArray tarray)

	SimpleLine
	  new constructor
	    SimpleLine(GeoDateArray tloc, double[] yloc, String title)
	    SimpleLine(double[] xloc, GeoDateArray tloc, String title)
	  new methods
	    GeoDateArray getGeoDateArray()
	    void setTimeArray(GeodDateArray tarray)

	SimplePoint
	  new constructor
	    SimplePoint(SoTPoint loc, String title)
	  new methods
	    long getLongTime()
	    void setTime(GeoDate date)
	    void setTime(long t)

	SimpleTuple
	  new methods
	    void setXArray(GeoDateArray tArray)
	    void setYArray(GeoDateArray tArray)
	    GeoDateArray getGeoDateArray()

gov.noaa.pmel.sgt.swing
	Draggable
	  new method
	    void setLocation(Point loc, boolean fireEvent)

	JGraphicLayout
	  new methods
	    Attribute findAttribute(String id)
	    void setAllClip(long tmin, long tmax, double min, double max)

	JPlotLayout
	  new methods
	    SoTDomain getGraphDomain()

	UserIcon
	  new methods
	    SoTPoint getLocationU()
	    void setLocationUNoVeto(SoTPoint loc)
	    void setLocationU(SoTPoint loc)

	ValueIcon
	  new methods
	    SoTPoint getLocationU()
	    void setLocationUNoVeto(SoTPoint loc)
	    void setLocationU(SoTPoint loc)

	ValueIconFormat
	  new methods
	    void setTimeFormat(String tfrmt)
	    String format(SoTPoint pt)

gov.noaa.pmel.sgt.swing.prop

gov.noaa.pmel.swing
	SelectTimeDialog
	  new method
	    void setRange(long min, long max)

gov.noaa.pmel.util
	Domain
	  new constructors
	    Domain(Range2D xRange, Range2D yrange, boolean xRev, boolean yRev)
	    Domain(TimeRange tRange, Range2D yRange, boolean xRev, boolean yRev)
	    Domain(Range2D xRange, TimeRange tRange, boolean xRev, boolean yRev)
	  new methods
	    void setYReversed(boolean rev)
	    boolean isYReversed()
	    void setXReversed(boolean rev)
	    boolean isXReversed()

	Point2D
	  new methods
	    boolean equals(Object obj)
	    Point2D copy()

	Rectangle2D
	  new subclass
  	    Rectangle2D.Float
	  new methods
	    void setWidth(double w)
	    double getWidth()
	    void setHeight(double h)
	    double getHeight()
	    void setX(double x)
	    double getX()
	    void setY(double y)
	    double getY()
	    Rectangle2D copy()

	SoTDomain
	  new constructor
	    SoTDomain(SoTRange xRange, SoTRange yRange, boolean xRev, boolean yRev)
	  new methods
	    SoTPoint getCenter()
	    void setXReversed(boolean rev)
	    boolean isXReversed()
	    void setYReversed(boolean rev)
	    boolean isYReversed()

	SoTPoint
	  new constructors
	    SoTPoint(double x, long y)
	    SoTPoint(long x, double y)
	  new methods
	    void setX(SoTValue x)
	    void setY(SoTValue y)
	    void add(SoTPoint point)
	    SoTPoint copy()

	SoTRange
	  new subclass
	    SoTRange.Time

	SoTValue
	  new sublcass
	    SoTValue.Time
	  new methods
	    void add(SoTValue val)
	    long getLongTime()
	    GeoDate getGeoDate()

	TimeRange
	  new constructor
	    TimeRange(long start, long end, long delta)