Conference Paper

Citrus: a language and toolkit for simplifying the creation of structured editors for code and data.

DOI: 10.1145/1095034.1095037 Conference: Proceedings of the 18th Annual ACM Symposium on User Interface Software and Technology, Seattle, WA, USA, October 23-26, 2005
Source: DBLP

ABSTRACT 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.

  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Modern applications such as Microsoft Word have many automatic features and hidden dependencies that are fre- quently helpful but can be mysterious to both novice and expert users. The "Crystal" application framework provides an architecture and interaction techniques that allow pro- grammers to create applications that let the user ask a wide variety of questions about why things did and did not hap- pen, and how to use the related features of the application without using natural language. A user can point to an ob- ject or a blank space and get a popup list of questions about it, or the user can ask about recent actions from a temporal list. Parts of a text editor were implemented to show that these techniques are feasible, and a user test suggests that they are helpful and well-liked.
    Proceedings of the 2006 Conference on Human Factors in Computing Systems, CHI 2006, Montréal, Québec, Canada, April 22-27, 2006; 01/2006
  • [Show abstract] [Hide abstract]
    ABSTRACT: Separated from GUI builders, existing GUI building tools for XML are complex systems that duplicate many functions of GUI builders. They are specialized in building GUIs for XML data only. This puts unnecessary burden on developers since an application usually has to handle both XML and non-XML data. In this paper, we propose a solution that separates the XML-to-GUI bindings from the construction of the GUIs for XML, and concentrates on the XML-to-GUI bindings only. Cooperating with a GUI builder, the proposed system can support the construction of the GUIs for XML as GUI building tools for XML can. Furthermore, the proposed mechanism is neutral to GUI builders and toolkits. As a result, multiple GUI builders and toolkits can be supported by the proposed solution with moderate effort. Our current implementation supports two types of GUI platforms: Java/Swing and Web/Html.
    Proceedings of the 2010 ACM Symposium on Document Engineering, Manchester, United Kingdom, September 21-24, 2010; 01/2010
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Recent advances in programming environments have focused on improving programmer productivity by utilizing the inherent structure in computer programs. However, because these environments represent code as plain text, it is difficult and sometimes impossible to embed interactive tools, annotations, and alternative views in the code itself. Barista is an implementation framework that enables the creation of such user interfaces by simplifying the implementation of editors that represent code internally as an abstract syntax tree and maintain a corresponding, fully structured visual representation on-screen. Barista also provides designers of editors with a standard text-editing interaction technique that closely mimics that of conventional text editors, overcoming a central usability issue of previous structured code editors.
    Proceedings of the 2006 Conference on Human Factors in Computing Systems, CHI 2006, Montréal, Québec, Canada, April 22-27, 2006; 01/2006

Full-text (2 Sources)

Available from
Jun 4, 2014