OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
An incremental constraint solver
Communications of the ACM
Automatic, look-and-feel independent dialog creation for graphical user interfaces
CHI '90 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Survey on user interface programming
CHI '92 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Building user interfaces interactively using pre- and postconditions
CHI '92 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Skyblue: a multi-way local propagation constraint solver for user interface construction
UIST '94 Proceedings of the 7th annual ACM symposium on User interface software and technology
Constraint satisfaction and debugging for interactive user interfaces
Constraint satisfaction and debugging for interactive user interfaces
An incremental algorithm for satisfying hierarchies of multiway dataflow constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
Reusable hierarchical command objects
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
The Amulet Environment: New Models for Effective User Interface Software Development
IEEE Transactions on Software Engineering
Create user interfaces with Glade
Linux Journal
R++: Adding Path-Based Rules to C++
IEEE Transactions on Knowledge and Data Engineering
Sketch pad a man-machine graphical communication system
DAC '64 Proceedings of the SHARE design automation workshop
Comparing usability of one-way and multi-way constraints for diagram editing
ACM Transactions on Computer-Human Interaction (TOCHI)
Property models: from incidental algorithms to reusable components
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Computational complexity of multi-way, dataflow constraint problems
IJCAI'97 Proceedings of the 15th international joint conference on Artifical intelligence - Volume 1
User interface declarative models and development environments: a survey
DSV-IS'00 Proceedings of the 7th international conference on Design, specification, and verification of interactive systems
Helping programmers help users
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
HotDrink: a library for web user interfaces
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Hi-index | 0.01 |
User interfaces for modern applications must support a rich set of interactive features. It is commonplace to find applications with dependencies between values manipulated by user interface elements, conditionally enabled controls, and script record-ability and playback against different documents. A significant fraction of the application programming effort is devoted to implementing such functionality, and the resulting code is typically not reusable. This paper extends our "property models" approach to programming user interfaces. Property models allow a large part of the functionality of a user interface to be implemented in reusable libraries, reducing application specific code to a set of declarative rules. We describe how, as a by-product of computations that maintain the values of user interface elements, property models obtain accurate information of the currently active dependencies among those elements. This information enables further expanding the class of user interface functionality that we can encode as generic algorithms. In particular, we describe automating the decisions for the enablement of user interface widgets and activation of command widgets. Failing to disable or deactivate widgets correctly is a common source of user-interface defects, which our approach largely removes. We report on the increased reuse, reduced defect rates, and improved user interface design turnarounds in a commercial software development effort as a result of adopting our approach.