Changes between Version 2 and Version 3 of MindSeer_Package_Guide

09/26/06 13:40:10 (13 years ago)



  • MindSeer_Package_Guide

    v2 v3  
    22While there are many packages in MindSeer, there is a method to the madness.  To begin with, a good deal of the structure is designed to eliminate circular dependencies.  Also things are split up so that some packages could be broken off with relatively little work for use in other projects.
    4 == edu.washington.biostr.sig ==
     4= edu.washington.biostr.sig =
    55Packages in this hierarchy are owned by the University of Washington and the long name follows Java guidelines.  This also includes 3 classes.  These classes handle creating and managing objects with unique ids across communicating platforms.  This is also where the base class for SynchronizationObserver lives.
    7 === brainj3d ===
     7= edu.washington.biostr.sig.brainj3d =
    88These files are what make up MindSeer.
    10 ==== colors ====
     10== colors ==
    1111Colors contain classes related to color schemes (which assign colors to intensity values) and some utilties (class Colors) for converting strings to colors and back again.
    13 ==== controls ====
     13== controls ==
    1414These are custom SwingHTMLObjects and collections.  They are in a separate package because they are compiled into the Client version.
    16 ==== core ====
     16== core ==
    1717The core comprises the central classes for ensuring that MindSeer works.  These include most communication links, the client UI, the Viewport, MindSeer specific Data Set classes (the generic classes are in the vault package) and the security protocol.
    19 ===== client =====
     19=== client ===
    2020This includes the Client Manager (which manages communication and acts as a central hub), the callback mechanism, and the client UI (the menus and the base class for Layout Managers).
    22 ====== guicomponents ======
     22==== ''guicomponents'' ====
    2323These are client specific user interface items like the Splash Screen during login and the popup to save data.
    25 ====== layout ======
     25==== ''layout'' ====
    2626Concrete implementations of Layout Managers and helper files live here.
    28 ===== display =====
     28=== display ===
    2929These classes extract user displayable names for objects in trees and lists.
    31 ===== files =====
     31=== files ===
    3232Files contain the MindSeer specific data set details.  These refer to the Data Set as a Workspace and include details on creating a tree for the data set.
    34 ===== security =====
     34=== security ===
    3535The security files contain the details on establishing and enforcing permissions for users and groups.  This delves heavily into the Java security model.  Most of these are package private for security purposes.
    37 === vault ===
     37=== server ===
     38These classes include details on communication with the client, launching the server itself and such important classes as the SessionImpl and Viewport.
     40== data ==
     41This package deals with Data objects, Encoders and Decoder, the Data Manager, Data Views, Data Models (collections of Data), keys for data and other helper classes and default implemenations of interfaces.
     43== datacontrollers ==
     44This is a bit of a catch all for Data Controllers (see interface DataController).
     46== doevents ==
     47In order to implement undo/redo, many commands needed to be encapsulated into using the [ Command Design Pattern].  They are encapsulated into objects that implement DoCommand.  Two main kinds of command objects exist  -- state targeted and invertable.  State targeted commands encapsulate the current and previous state of the target.  Invertable commands store how to change the view and how to undo what they did.  These are then fired at a Do Target (which Viewport later implements), which is in charge of managing the appropriate thread and ensuring efficient execution.
     49This packages is probably a bit too generic for its own good as it became complex enough to make incorporating into external programs difficult, but is probably managable if the Controllers are moved into a different package.
     51= edu.washington.biostr.sig.vault =
    3852The vault classes were originally conceived as a library for metadata about files.  It is not known if this library could be used externally from MindSeer.  It contains most of the MindSeer independent logic for displaying, querying and building a data set.  The original design was a little ambitious and so users can create alternate backing stores using databases or basic maps.
    40 ==== core ====
     54== core ==
    4155These are the central classes for creating nodes, associating meta data and creating collections (DataVault) of files with metadata.  It also contains classes to execute queries.
    43 ==== display ====
     57== display ==
    4458This includes classes for displaying and rearranging trees in Swing.
    46 ==== files ====
     60== files ==
    4761These classe include filters for file types and utilities for files.
    49 ==== remote ====
     63== remote ==
    5064These classes were supposed to handle synchronization of the vault.  They are not used or tested.
    52 ==== xml ====
     66== xml ==
    5367The xml package contains classes to convert a Data Vault to or from XML.
    55 === nifti ===
     69= edu.washington.biostr.sig.nifti =
    5670Generic NIFTI classes live here.  They can be used as an external library for reading NIFTI files.  Because it also handles SPM's transform, this library depends on matfile.
    58 === matfile ===
     72= edu.washington.biostr.sig.matfile =
    5973These classes are responsible for reading a Matlab version 4 or 5 file and converting it into Java objects.  They are a separate library from MindSeer.
    61 == org.eiderman ==
     75= org.eiderman =
    6276Packages in this hierarchy are copyrighted by Eider Moore.  They were from his personal library and released under the LGPL.