Version 2 (modified by ebmoore, 11 years ago) (diff)


These descriptions are largely taken from Peter Lincoln's summary.

Abstract Class Data

The Data class is designed to store a single set of data; for example, an instance of the VolumeData? class allocates a large array for storing volumetric data. Data can be mutable or static; however, implementers must account for the fact that even if the data is used in multiple viewers or used by multiple users at a given instant, only one instance of the Data object exists for a given group of files. Thus the data can be shared among multiple views. This is done to reduce loading times and memory impact for repeated load requests.

Interface DataView?

Implementations of the DataView? interface handle the multi-user situation. While only one instance of the Data object may exist for a given file group, each of the users’ viewers uses its own instance of the DataView?. DataViews? are designed to provide a layer between the source data and the viewer. They also handle changed parameter events and store any necessary rendering attributes. The minimum implementation of a new visualization method of an existing data type will likely implement this interface.

Interface DataController?

Implementations of the DataController? interface provide a user interface for manipulating the settings for a particular DataView? instance. These controls will appear on the Data tab. GUI events are processed through the Listener interface’s method somethingHappened(Event) and, after processing, should be dispatched to the appropriate DataView?. Generally, controls for this type of controller should only manipulate the DataView? instance. If no such controls are to be presented to the user, then use an instance of NullController?.