TL;DR: A user interface toolkit that offers a rich set of composition mechanisms and a variety of predefined objects, allowing easy implementation of complex user interfaces, and support for end-user customization as well as the status of the current implementation is described.
Abstract: The authors describe a user interface toolkit, InterViews, that offers a rich set of composition mechanisms and a variety of predefined objects, allowing easy implementation of complex user interfaces. InterViews supports composition of three object categories, each implemented as a hierarchy of object classes derived from a common base class. The categories are interactive objects, structured graphics objects, and structured text objects. The authors present several simple applications and show how InterViews objects can implement their interfaces. They illustrate the benefits of separating interactive behavior and abstract data in several different contexts. They discuss InterViews support for end-user customization as well as the status of the current implementation. >
TL;DR: This dissertation examines the use of local propagation constraint solvers in user interface toolkits, and presents three new systems: the SkyBlue constraint solver, the Multi-Garnet package, and the CNV user interface builder and debugger.
Abstract: Many user interface toolkits use constraint solvers to maintain geometric relationships between graphic objects, or to connect the graphics to the application data structures. One efficient and flexible technique for maintaining constraints is multi-way local propagation, where constraints are represented by sets of method procedures. This dissertation examines the use of local propagation constraint solvers in user interface toolkits, and presents three new systems: (1) The SkyBlue constraint solver. SkyBlue is an incremental constraint solver that uses local propagation to maintain a set of constraints as individual constraints are added and removed. If all of the constraints cannot be satisfied, SkyBlue leaves weaker constraints unsatisfied in order to satisfy stronger constraints (maintaining a constraint hierarchy). SkyBlue is a more general successor to the DeltaBlue algorithm that satisfies cycles of methods by calling external cycle solvers and supports multi-output methods. These features make SkyBlue more useful for constructing user interfaces, since cycles of constraints can occur frequently in user interface applications and multi-output methods are necessary to represent some useful constraints. (2) The Multi-Garnet user interface development system. Garnet is a user interface toolkit that incorporates a constraint solver to maintain one-way constraints between object fields: any object field can have an associated formula to calculate its value from other object fields. The Multi-Garnet package extends Garnet to support multi-way constraints and constraint hierarchies. It integrates the SkyBlue solver into the Garnet object system, allowing programmers to create and use constraints without explicitly accessing the constraint solver. Multi-Garnet has been used to construct complex user interfaces that would have been difficult to construct just using Garnet's constraint solver. (3) The CNV user interface builder and debugger. Programmers need tools to examine the behavior of large constraint networks, just as they need such tools when debugging imperative programs. The CNV user interface builder includes a set of debugging tools to help programmers understand the behavior of complex constraint networks. One tool uses a new algorithm to generate alternate constraint solutions that would have been produced if SkyBlue had chosen different methods to satisfy the constraints.
TL;DR: A new model that handles input devices for highly interactive, direct manipulation, graphical user interfaces, which could be used in future toolkits, window managers, and graphics standards is presented.
Abstract: Although there has been important progress in models and packages for the output of graphics to computer screens, there has been little change in the way that input from the mouse, keyboard, and other input devices is handled. New graphics standards are still using a fifteen-year-old model even though it is widely accepted as inadequate, and most modern window managers simply return a stream of low-level, device-dependent input events. This paper presents a new model that handles input devices for highly interactive, direct manipulation, graphical user interfaces, which could be used in future toolkits, window managers, and graphics standards. This model encapsulates interactive behaviors into a few “Interactor” object types. Application programs can then create instances of these Interactor objects which hide the details of the underlying window manager events. In addition, Interactors allow a clean separation between the input handling, the graphics, and the application programs. This model has been extensively used as part of the Garnet system and has proven to be convenient, efficient, and easy to learn.
TL;DR: A usability evaluation of an application built using CAM for collecting data from microfinance groups in rural India shows that, with a properly designed user interface, mobile phones can be a preferred platform for many rural computing applications.
Abstract: CAM is a user interface toolkit that allows a camera-equipped mobile phone to interact with paper documents. It is designed to automate inefficient, paper-intensive information processes in the developing world. In this paper we present a usability evaluation of an application built using CAM for collecting data from microfinance groups in rural India. This application serves an important and immediate need in the microfinance industry. Our quantitative results show that the user interface is efficient, accurate and can quickly be learned by rural users. The results were competitive with an equivalent PC-based UI. Qualitatively, the interface was found easy to use by almost all users. This shows that, with a properly designed user interface, mobile phones can be a preferred platform for many rural computing applications. Voice feedback and numeric data entry were particularly well-received by users. We are conducting a pilot of this application with 400 microfinance groups in India.
TL;DR: This second edition of Java Swing thoroughly covers all the features available in Java 2 SDK 1.3 and 1.4 and is a book by developers for developers, with hundreds of useful examples, from beginni.g level to advanced.
Abstract: From the Publisher:
Swing is a fully featured user interface development kit for Java applications. Building on the foundations of the Abstract Window Toolkit (AWT), Swing enables cross-platform applications to use any of several pluggable look-and-feels. Swing developers can take advantage of its rich, flexible features and modular components, building elegant user interfaces with very little code. This second edition of Java Swing thoroughly covers all the features available in Java 2 SDK 1.3 and 1.4. More than simply a reference, this new edition takes a practical approach. It is a book by developers for developers, with hundreds of useful examples, from beginni.g level to advanced. All these features mean that there's a lot to learn. Even setting aside its platform flexibility, Swing compares favorably with any widely available user interface toolkit -- it has great depth. Swing makes it easy to do simple things but is powerful enough to create complex, intricate interfaces.