Project History

Presentation Layer

The basic classes for supporting the curation forms in Macaw are described in Figure Arch-Presentation-1.

Fig. Arch-Presentation-1: Basic classes in Macaw for creating the curation forms.

The main entry point into the User interface begins with the LoginDialog (Arch-Presentation-2). Assuming a users are valid, the next dialog they will see is MacawVariableBrowser (See Arch-Presentation-3).

Fig. Arch-Presentation-2: The Login Dialog managed by LoginDialog

Fig. Arch-Presentation-3: The main variable curation screen, supported by the MacawVariableBrowser class.

This UI class shows a list VariableSearchPanel that displays a list of VariableSummary records that match the search criteria. Currently, when the search panel has no criteria specified, all records are shown. In future, the default view of the collection will be to show no VariableSummary records. When end-users select a row in the table, MacawVariableBrowser sensitises editing buttons that correspond to whether a variable is raw or derived. These editing buttons will spawn an instance of either RawVariableEditor or DerivedVariableEditor.

Shared form components and behaviour for these editors resides in the superclass VariableEditor. Editing forms for both raw and derived variables share a number of common UI components:

The DerivedVariableEditor also shows a list of source Variable records. Figure Arch-Presentation-4 shows an example of some of these UI components being displayed in RawVariableEditor:

Fig. Arch-Presentation-4: Anatomy of the RawVariableEditor.

The UI shows lists of supporting documents, ontology terms and source variables. Although the lists contain different kinds of data, they are all managed in similar ways:

To help re-use code, UI components that show these lists rely on a generic list display class called DisplayItemListPanel. This class manages a UI that is shown in the OntologyTermsPanel and SupportingDocumentsPanel of Fig. 7-6. A panel containing a list and editing buttons is designed generically so it displays items from classes that implement the interface Displayable. Separate editors can be set to trigger when “Add”, “Edit”, “Delete” or “Select” buttons are pressed.

Author: Kevin Garwood

(c)2010 Lifelong Health and Ageing Unit of the Medical Research Council.