wiki:Helpful_Hints_for_Extending_MindSeer
Last modified 11 years ago Last modified on 09/26/06 10:31:37

This page is largely unformatted now, but should offer a good starting point.

There are 6 main plugin classes/types:

  • FileType? - set it up to accept files of the correct type
  • Decoder - read in new Data
  • Data - encapsulate the data itself (these instances are shared between users and so should not contain view information)
  • DataView? - encapsulate the view information for a Data object and also wrap a Data object so that it is in the right format for a ViewPort?
  • ViewPort? display the basic interface for a set of DataView?'s
  • Controller - provide controls for a view. A DataView? has a DataController? for changing the appearance and a ViewPort? can also accept ViewControllerS.

For the UI, you need to use special widgets that act as wrappers for Swing. These are located in edu.washington.biostr.sig.shwing. They can go over the wire in RMI (Swing isn't designed to do that) and they handle all of the synchronization of the Client and Server instance of MindSeer. The base class for these widgets is SwingHTMLObject.

the edu.washington.biostr.sig.brainj3d.image package shows how to make a simple Data plugin. (FileType?, Decoder and Data) the edu.washington.biostr.sig.brainj3d.view package has some more Image related classes that show how to make a simple view. (ViewPort? and an incredibly simple DataView?).

You can also explore the Controller interfaces. SurfaceAppearanceController? is the simplest nontrivial data controller.