# Presentation: 423194

## Plug and Play Scientific Graphics with SGT

- Donald DenboNOAA/PMEL-UW/JISAO
*Presented by*Christopher MooreNOAA/PMEL-UW/JISAO

*http://www.epic.noaa.gov/java/sgt*

## Introduction

- The Scientific Graphics Toolkit (SGT) is a collection of Java classes to produce scientific 2D graphics.
- SGT is a flexible system, allowing developers to produce custom graphics.
- SGT, while popular, does require an expert programmer to use it effectively.

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## Goals for Plug n’ Play Graphics

- Create easy-to-use JavaBeans from the SGT classes.
- JavaBeans enables beginner and intermediate developers a quick entry into SGT graphics.
- SGT Beans handles most events and provides tools to easily customize the appearance of the plot.

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## Why JavaBeans?

- Provide component technology for Java.  Components enhance re-usability in the Java environment.
- Can easily be used in IDE and RAD environments.
- Bean Customizers can be developed to work within IDE and RAD tools.
- Beans provide a standard mechanism to interact with development tools and simplify access to complicated Java class libraries.
- Beans have an object persistence mechanism.  (XML serialization)

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## Java Development Tools

- BeanBuilderAvailable free from Sun Microsystems for JVM 1.4 or later
- Java Integrated Development Environments (JBuilder, Eclipse, NetBeans)

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## BeanBuilder

- Event Connection

- Component Layout

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## SGT JavaBeans

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## SGT PanelModel Customizer

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## SGT Page Bean with graphics

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## Design

**Page**

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## Page JavaBean

- Visual JavaBean.  *Page* can be added to any swing container.
*Page* can have any number of Panels placed inside it.  Each Panel provides an independent graphical display of data from the *DataModel*.
- The location and size of the Panels are specified in the *PanelModel*.

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## PanelModel JavaBean

- Non-visual JavaBean.
*PanelModel *maintains:
- location and size of Panels on *Page*
- DataGroups and their positions on a Panel
- Legend position on a Panel
- Titles and annotation positions on a Panel

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## DataModel JavaBean

- Non-visual JavaBean.
*DataModel* uses information from the *PanelModel* to specify the connection between data and Panel/DataGroup.
- Contains the SGTData and Attribute objects.

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## Real World Example

- User opens ncReader and selects a netCDF file.
- ncReader accesses the *PanelModel* to generate a list of Panel/DataGroups.
- User selects which Panel/DataGroup the data subset should be attached.
- ncReader adds the data with the Panel/DataGroup information to the *DataModel*.

- ncReader

- data

*DataModel*

*PanelModel*

*Page*

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05

## Future Directions

- Design is completed and implementation will be finished by September 2003.
- Beta version of SGT Beans will be made available once an initial implementation of the *Page*, *PanelModel*, *DataModel*, and Customizer are complete (~1 month).
- User feedback will help guide additional development.

*http://www.epic.noaa.gov/java/sgt*

- NOAAResearch WebShop 2003, Longmont, CO

- 2003-06-05