com.pixelmed.database
Class DatabaseTreeBrowser

java.lang.Object
  extended by com.pixelmed.database.DatabaseTreeBrowser
Direct Known Subclasses:
DicomCleaner.OurDestinationDatabaseTreeBrowser, DicomCleaner.OurSourceDatabaseTreeBrowser

public class DatabaseTreeBrowser
extends Object

The DatabaseTreeBrowser class implements a Swing graphical user interface to browse the contents of DatabaseInformationModel.

The browser is rendered as a tree view of the entire database and a one row tabular representation of the contents of any entity (record) that the user selects in the tree. Constructors are provided to either add the browser to a frame and creating the tree and table, or to make use of a pair of existing scrolling panes.

Though a functional browser can be built using this class, to add application-specific behavior to be applied when a user selects an instance of an entity from the tree, a sub-class inheriting from this class should be constructed that overrides the buildTreeSelectionListenerToDoSomethingWithSelectedFiles method. The default implementation is as follows:

        protected TreeSelectionListener buildTreeSelectionListenerToDoSomethingWithSelectedFiles() {
                return new TreeSelectionListener() {
                        public void valueChanged(TreeSelectionEvent tse) {
                                TreePath tp = tse.getNewLeadSelectionPath();
                                if (tp != null) {
                                        Object lastPathComponent = tp.getLastPathComponent();
                                        if (lastPathComponent instanceof DatabaseTreeRecord) {
                                                DatabaseTreeRecord r = (DatabaseTreeRecord)lastPathComponent;
                                                InformationEntity ie = r.getInformationEntity();
                                                if (ie == InformationEntity.INSTANCE) {
                                                        System.err.println("TreeSelectionListener.valueChanged: "+r.getLocalFileNameValue());
                                                }
                                        }
                                }
                        }
                };
        }
 

See Also:
com.pixelmed.database, DatabaseTreeRecord, DatabaseInformationModel, TreePath, TreeSelectionListener

Constructor Summary
DatabaseTreeBrowser(DatabaseInformationModel d, Container content)
          Build and display a graphical user interface view of a database information model.
DatabaseTreeBrowser(DatabaseInformationModel d, JFrame frame)
          Build and display a graphical user interface view of a database information model.
DatabaseTreeBrowser(DatabaseInformationModel d, JScrollPane treeBrowserScrollPane, JScrollPane attributeBrowserScrollPane)
          Build and display a graphical user interface view of a database information model.
 
Method Summary
protected  MouseListener buildMouseListenerToDetectDoubleClickEvents()
           
protected  TreeSelectionListener buildTreeSelectionListenerToDisplayAttributesOfSelectedRecord(JScrollPane attributeBrowserScrollPane)
          By default this method populates the tabular attribute browser when an entity is selected in the tree browser.
protected  TreeSelectionListener buildTreeSelectionListenerToDoSomethingWithSelectedFiles()
          Override this method to perform application-specific behavior when an entity is selected in the tree browser.
protected  void doSomethingMoreWithWhateverWasSelected()
           
protected  void doSomethingWithSelectedFiles(Vector paths)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DatabaseTreeBrowser

public DatabaseTreeBrowser(DatabaseInformationModel d,
                           JScrollPane treeBrowserScrollPane,
                           JScrollPane attributeBrowserScrollPane)
                    throws DicomException

Build and display a graphical user interface view of a database information model.

Parameters:
d - the instance of the database (information model)
treeBrowserScrollPane - the scrolling pane in which the tree view of the entire model (database) will be rendered
attributeBrowserScrollPane - the scrolling pane in which the tabular view of the currently selected entity (record) will be rendered
Throws:
DicomException - thrown if the information cannot be extracted

DatabaseTreeBrowser

public DatabaseTreeBrowser(DatabaseInformationModel d,
                           JFrame frame)
                    throws DicomException

Build and display a graphical user interface view of a database information model.

Parameters:
d - the instance of the database (information model)
frame - a frame to whose content pane will be added scrolling panes containing tree and tabular selection views
Throws:
DicomException - thrown if the information cannot be extracted

DatabaseTreeBrowser

public DatabaseTreeBrowser(DatabaseInformationModel d,
                           Container content)
                    throws DicomException

Build and display a graphical user interface view of a database information model.

Parameters:
d - the instance of the database (information model)
content - a container to which will be added scrolling panes containing tree and tabular selection views
Throws:
DicomException - thrown if the information cannot be extracted
Method Detail

buildTreeSelectionListenerToDoSomethingWithSelectedFiles

protected TreeSelectionListener buildTreeSelectionListenerToDoSomethingWithSelectedFiles()

Override this method to perform application-specific behavior when an entity is selected in the tree browser.

By default this method builds a Vector of all the file names (paths) of the selected record and the subtree below it, then calls doSomethingWithSelectedFiles.


buildTreeSelectionListenerToDisplayAttributesOfSelectedRecord

protected TreeSelectionListener buildTreeSelectionListenerToDisplayAttributesOfSelectedRecord(JScrollPane attributeBrowserScrollPane)

By default this method populates the tabular attribute browser when an entity is selected in the tree browser.

Override this method to perform application-specific behavior, perhaps if not all attributes in the database for the selected entity are to be displayed, or their values are to be rendered specially. The default implementation renders everything as strings except those local database administrative attributes normally excluded.

Parameters:
attributeBrowserScrollPane - the tabular attribute browser

buildMouseListenerToDetectDoubleClickEvents

protected MouseListener buildMouseListenerToDetectDoubleClickEvents()

doSomethingWithSelectedFiles

protected void doSomethingWithSelectedFiles(Vector paths)
Parameters:
paths -

doSomethingMoreWithWhateverWasSelected

protected void doSomethingMoreWithWhateverWasSelected()