Chapter 4. Creating Complex User InterfacesComplex 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 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 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 Construct 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. ![]() |