490 likes | 1.03k Views
SGT Beans Easy-To-Use Graphics Toolkit for Java Applications Donald W. Denbo UW/JISAO-NOAA/PMEL Introduction The Scientific Graphics Toolkit JavaBeans (SGT Beans) is a collection of Java classes that provide JavaBeans compatible access to SGT.
E N D
SGT Beans Easy-To-Use Graphics Toolkit for Java Applications Donald W. Denbo UW/JISAO-NOAA/PMEL
Introduction • The Scientific Graphics Toolkit JavaBeans (SGT Beans) is a collection of Java classes that provide JavaBeans compatible access to SGT. • JavaBeans makes SGT’s capabilities more accessible to developers. • SGT Beans reduces the learning curve needed to produce graphics applications. • SGT Beans can be used with several Java IDEs (NetBeans, JBuilder, etc.). NOAATech 2004, Silver Spring, MD
History • SGT was developed to allow a NOAAServer user to interactively preview data and overlay plots. • SGT presently used with … • OceanShare, a collaborative tool for in situ data visualization • ncBrowse, a netCDF file browser • Climate Data Portal client, an application for browsing distributed data • SGT has had ~17,000 downloads from 5,800 unique sites in 70 countries. NOAATech 2004, Silver Spring, MD
Other Users of SGT • Buoy Data, Morska Bioloska Postaja (Marine Biology Station) • Computational Physics Laboratory, University of Edinburgh • A Utility in JOELib, Computational Chemistry, University of Tübingen • “Coordinated, Interactive Data Visualization for Neutron Scattering Data”, Mikkelson et. al. • Dezo.org has created SGT applet plots. • “An Interactive Program for Determining Junction Depths in Diffused Silicon Devices”, Myers et. al. • Übungsunterlagen 2002, Wasserspeicher NOAATech 2004, Silver Spring, MD
Outline • SGT Bean design goals • Demonstration of SGT Bean application. • Architecture • Page • DataModel • PanelModel • SGT Bean code examples • Time series. Plotting data from a netCDF file. • Add grid plot. Refactor netCDF reader. • Overlay vectors and add printing, PanelModel edit, etc. • What Next? NOAATech 2004, Silver Spring, MD
Design Goals • Create easy-to-use JavaBeans from the SGT classes. • JavaBeans will enable beginner and intermediate developers a quick entry into SGT graphics. • SGT Beans will handle most events and provide tools to easily customize the appearance of the plot. NOAATech 2004, Silver Spring, MD
SGT Beans Demonstration Start Demonstration NOAATech 2004, Silver Spring, MD
1 1 DataModel PanelModel Architecture The SGT Beans architecture consists of Page, DataModel, and PanelModel JavaBeans. The DataModel and PanelModel beans provide the “state” information necessary for Page to create a graphic display. Page NOAATech 2004, Silver Spring, MD
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. NOAATech 2004, Silver Spring, MD
JPane 1 1 components 1..* Layer 2 Panel legendLayer labelLayer DataGroupLayer * Page Page NOAATech 2004, Silver Spring, MD
PanelModel JavaBean • Non-visual JavaBean. • PanelModelmaintains: • location and size of Panels on Page • AxisGroups and their positions on a Panel • Legend position on a Panel • Titles and annotation positions on a Panel NOAATech 2004, Silver Spring, MD
1..* PanelHolder Label Legend * * 1..* DataGroup AxisHolder Margin 2 1 PanelModel PanelModel NOAATech 2004, Silver Spring, MD
DataModel JavaBean • Non-visual JavaBean. • DataModel uses information from the PanelModel to specify the connection between data and Panel/AxisGroup. • Contains the SGTData and Attribute objects. NOAATech 2004, Silver Spring, MD
1..* SGTData DataHolder Attribute 1 1 1 PanelHolder 1 1 DataGroup 1..* Legend * DataModel DataModel NOAATech 2004, Silver Spring, MD
SGT Beans Code Examples • Example 1: Time Series • Read time series from netCDF file into SimpleLine object. • Create graph using Page, DataModel, and PanelModel. • Load PanelModel from SBExample1.xml. • Example 2: Add Grid Plot • Read grid from netCDF file into SimpleGrid object. • Load PanelModel from SBExample2.xml. • Example 3: Overlay Vectors and Add Interactivity • Read vector from netCDF file into SGTVector object. • Load PanelModel from SBExample3.xml. • Add color map Legend. • Add printing, class browsing, zoom reset, PanelModel edit. NOAATech 2004, Silver Spring, MD
Example 1: Time Series SBExample1.xml
SBExample1 class NOAATech 2004, Silver Spring, MD
Constuctor NOAATech 2004, Silver Spring, MD
createGraphic() NOAATech 2004, Silver Spring, MD
createGraphic() (cont) NOAATech 2004, Silver Spring, MD
NcSimpleReader1 NOAATech 2004, Silver Spring, MD
getTimeSeries() implementation NOAATech 2004, Silver Spring, MD
Set shape and read Arrays NOAATech 2004, Silver Spring, MD
Extract variable and axis values NOAATech 2004, Silver Spring, MD
Parse time units. NOAATech 2004, Silver Spring, MD
Parse time offset, create GeoDateArray NOAATech 2004, Silver Spring, MD
Create SimpleLine and return NOAATech 2004, Silver Spring, MD
Example 2: Add Grid Plot NOAATech 2004, Silver Spring, MD SBExample2.xml
SBExample2 modifications NOAATech 2004, Silver Spring, MD
Add Grid to Page NOAATech 2004, Silver Spring, MD
Add createGridAttribute() NOAATech 2004, Silver Spring, MD
NcSimpleReader2 - Add getGrid() NOAATech 2004, Silver Spring, MD
Get shape and x & y axis data NOAATech 2004, Silver Spring, MD
Adjust shape and get data grid NOAATech 2004, Silver Spring, MD
Create SimpleGrid and return NOAATech 2004, Silver Spring, MD
Example 3: Overlay Vectors and Add Interactivity NOAATech 2004, Silver Spring, MD SBExample3.xml
SBExample3 modifications NOAATech 2004, Silver Spring, MD
Add Grid Legend NOAATech 2004, Silver Spring, MD
Add Printing NOAATech 2004, Silver Spring, MD
Reset Zoom and Open JClassTree NOAATech 2004, Silver Spring, MD
Edit Printer Layout and PanelModel NOAATech 2004, Silver Spring, MD
NcSimpleReader3 - Add getVector() NOAATech 2004, Silver Spring, MD
Modify getGeoDateArray NOAATech 2004, Silver Spring, MD
What next? • Add LayoutManager support to position Panels when Page is resized. This requires creating a graphical wizard to set SpringLayout properties. • Add Annotation object support. Annotations include line, oval, point, text, and rectangle objects. • Enhance IDE compatibility with popular tools. • Continue fixing bugs, as they are found, and adding new useful features. NOAATech 2004, Silver Spring, MD
References • SGT Beans • “Plug and Play Scientific Graphics with SGT”, NOAAResearch WebShop 2003, Longmont, CO • SGT home page • ncBrowse • “ncBrowse: A Graphical netCDF/OPeNDAP Browser”, 11th ESIP Technical Meeting - OPeNDAP Session, Boulder, CO • ncBrowse home page • OceanShare • “Fisheries Oceanography Collaboration Software”, 18th AMS International Conference on IIPS, Orlando, FL • Collaboration home page • Climate Data Portal • Climate Data Portal home page NOAATech 2004, Silver Spring, MD