Provides support for hiding some of the complexity of the VisAD package.
For the MetApps project, the most relevant top-level classes are probably DisplayMaster and Displayable. Here's a simple schematic of how they might be used (bold text is more important):
import javax.swing.*;
import ucar.visad.*;
import visad.*;
public class MyDisplay
extends DisplayMaster
{
public MyDisplay()
{
super(new DisplayImplJ2D("MyDisplay"));
...
addScalarMap(new ScalarMap(commonScalarType1, commonDisplayType1));
...
}
public static void main(String[] args)
{
MyDisplay myDisplay = new MyDisplay();
myDisplay.addDisplayable(new MyDisplayable(...));
myDisplay.addDisplayable(new MyDisplayable(...));
...
JFrame jframe = new JFrame("My Display");
jframe.getContentPane().add(myDisplay.getComponent());
myDisplay.draw();
jframe.pack();
jframe.setVisible(true);
}
}
public class MyDisplayable
extends Displayable
{ ... }
The above example creates a DisplayMaster from a VisAD
LocalDisplay, adds the ScalarMaps that are common to
the Displayable that it will display (typically spatial ScalarMap-s),
adds some Displayables of subclass
MyDisplayable, and then renders the Displayables.
This illustrates the fundamental relationship between DisplayMaster
and Displayable: a DisplayMaster manages the display of one or
more Displayables.