User Interface Development

A major goal of the IBM Cúram Social Program Management™ development environment is to simplify user interface creation. Client "pages" are associated with particular back-end server interfaces, and since metadata about these interfaces has already been captured in the application model this can be leveraged to provide much of the information required for user interface generation. Much of the remaining task for client developers is to list the fields that should appear on a given client page. Default "widget" types are provided for fields and controls on the screen, based on its knowledge of the datatypes associated with fields.

Fields follow a grid layout in "clusters" and "lists" specified in XML along with the overall "page hierarchy" . Widget types are determined automatically by connections.

An example of the User Interface Metadata (UIM) code for the "firstname" field is as follows:

          <FIELD LABEL="Field.Label.FirstName">
          <CONNECT>
          <SOURCE NAME="Interface1" PROPERTY="firstForename"/>
          </CONNECT>
          a
          </FIELD>
        

The LABEL attribute of the FIELD element describes the label text that will be associated with this field when a client page is displayed. The value "Field.Label.FirstName" is a reference to the actual label value in a separate property file. The use of strings externalized in property files allows for easy localization of client applications. The SOURCE element describes where this field's contents comes from when the page is displayed. The NAME attribute of the SOURCE element specifies a specific back-end interface defined in the application model. The PROPERTY attribute specifies a particular datum returned by the back-end interface.

Note that there is no specification of exactly where on the screen the field should be displayed, nor is their any information about the field's datatype or the HTML control that will be used to display it. All of this information is filled in automatically at application build time. The simplicity of UIM pages makes them very easy to copy and paste from templates, making for a high level of developer productivity.

Figure 1. Sample Cúram User Interface