Chapter 4. Creating Complex User Interfaces
Complex user interfaces can be created by aggregating user interface controls described in Chapter 3. We begin this chapter with an overview of the XForms aggregation constructs. Like the user interface controls, aggregation constructs are designed to encourage intent-based authoring of the user interaction. The goal is to capture sufficient information about the underlying man-machine conversation and thereby deliver a satisfactory end-user experience on a variety of modalities and devices.
The need to refactor a user interface is the first requirement that arises when one attempts to deliver a given user interaction to a variety of end-user devices. As an example, a user interface authored for a large display often needs to be split into several screens (or a logical deck of cards ) when rendered on a cell phone. Effective refactoring of user interfaces is best achieved if the information needed for refactoring is captured at authoring time. Aggregation construct group described in Section 4.1 was specifically introduced into XForms to play this role.
Efficient navigation among the parts of a complex user interface can be a major factor in determining overall usability. This is especially true when a complex user interface may be refactored into a number of logical transactional units. As the man-machine conversation gets more complex, the ability to introduce dynamic constructs that enable the conditional activation of relevant portions of the user interface lead to efficient navigation and task completion. Aggregation construct switch described in Section 4.2 can be used to author dynamic user interfaces that respond to user interaction events by appropriately revealing specific portions of a user interface.
Electronic forms (in contrast to paper forms) are characterized by their ability to adapt to the user's actions and grow as necessary. Thus, a shopping application might start off by displaying a shopping cart with space for a small number of entries. However, as the user proceeds to add items to the shopping cart, the interface adapts itself by creating additional rows in the shopping cart interface. This form of dynamism in XForms is enabled by aggregation construct repeat described in Section 4.3.
Construct repeat can be nested, and this ability can be used to advantage in creating user interfaces for manipulating complex hierarchical structures. Associated event handlers insert and delete can be used in conjunction with repeating constructs created via element repeat to edit and update complex hierarchical structures interactively.
We conclude this chapter in Section 4.4 with a step-by-step description of a complex user interface that uses the various user interface controls and aggregation constructs.