SwingStates: adding state machines to the swing toolkit

  • Authors:
  • Caroline Appert;Michel Beaudouin-Lafon

  • Affiliations:
  • LRI (Univ. Paris-Sud & CNRS)/INRIA Futurs, Orsay, France;LRI (Univ. Paris-Sud & CNRS)/INRIA Futurs, Orsay, France

  • Venue:
  • UIST '06 Proceedings of the 19th annual ACM symposium on User interface software and technology
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

This article describes SwingStates, a library that adds state machines to the Java Swing user interface toolkit. Unlike traditional approaches, which use callbacks or listeners to define interaction, state machines provide a powerful control structure and localize all of the interaction code in one place. SwingStates takes advantage of Java's inner classes, providing programmers with a natural syntax and making it easier to follow and debug the resulting code. SwingStates tightly integrates state machines, the Java language and the Swing toolkit. It reduces the potential for an explosion of states by allowing multiple state machines to work together. We show how to use SwingStates to add new interaction techniques to existing Swing widgets, to program a powerful new Canvas widget and to control high-level dialogues.