The ViewPort? class is designed to provide a visual representation of a collection of data sets. It creates and uses a DataModel?, described below, to manage the storage of each of the data views present in the viewer. In general, this class should only handle ViewPort?-related events and rendering procedures.

Implementations of the DataModel? interface manage the storage of DataView? instances. It should also make appropriate calls upon the DataViews? to tell them when they are added or removed from the model to ensure that proper initialization and cleanup occurs within the DataView?. The may assist the ViewPort? in collecting some rendering information as it may be a more efficient. In general, there is a one-to-one link between a ViewPort? instance and a DataModel? instance; DataModels? are not shared among ViewPorts?.

Implementations of the ViewPortController? interface provide a user interface for manipulating the settings for a particular ViewPort? instance. These controls will appear on the View tab. GUI events are processed through the Listener interface’s method somethingHappened(Event) and, after processing, should be dispatched to the appropriate ViewPort?. Generally, controls for this type of controller should only manipulate the ViewPort? instance. If no such controls are to be presented, then no declaration of a class implementing ViewPortController? is necessary.