posted on 2005-01-01, 00:00authored byAndrew J. Ko, Brad A. Myers
Direct-manipulation editors for structured data are
increasingly common. While such editors can greatly
simplify the creation of structured data, there are few tools
to simplify the creation of the editors themselves. This
paper presents Citrus, a new programming language and
user interface toolkit designed for this purpose. Citrus
offers language-level support for constraints, restrictions
and change notifications on primitive and aggregate data,
mechanisms for automatically creating, removing, and
reusing views as data changes, a library of widgets, layouts
and behaviors for defining interactive views, and two
comprehensive interactive editors as an interface to the
language and toolkit itself. Together, these features support
the creation of editors for a large class of data and code.