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


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.

Download full-text


Available from: Brad A. Myers,
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: We introduce a class of program editors that present a program using a rich set of transformations; we call these kinds of editors composable presentation editors. Proper use of these kinds of editors appears to lead to more expressive programs-programs whose structure are aligned with the problem they are trying to solve. By default, the composable presentation editor presents program elements textually as concrete syntax and enables typical editor commands on the program. Metadata on program elements control how the transformations are applied. Customized metadata can re-order, pictorialize, collapse, duplicate, or expand the displayed form of program elements and can additionally alter the available editor commands. We have developed a set of presentation techniques to be used by presentation designers (i.e., the programmers who design how a program is presented in the editor. These techniques relate to well-understood programming language design, editor design, and programming best-practices techniques including scoping, higher order functions, refactoring, prettyprinting, naming conventions, syntax highlighting, and text hovers. We introduce two implementations of composable presentation editors and a number of examples showing how programs can be made more expressive when presentation techniques are properly used. The first implementation is the ETMOP, an open editor, where a metaobject protocol is provided that allows language and editor designers to customize the way program elements are displayed. These customizations are called presenta- tion extensions and the corresponding presentation extension protocol acts in a way similar to the way that syntax macros extend the syntax of a language. The second implementation is Embedded CAL, a closed editor that uses these presentation techniques to embed one language (CAL) inside a host language (Java) through the use of presentation techniques, without changing the syntax or compiler of either language.
  • [Show abstract] [Hide abstract]
    ABSTRACT: This paper describes the extension of a structural functional programming editor, Anastasia, to operate over a core subset of Haskell which is now being taught to all undergraduate Informatics students at the Univer- sity of Edinburgh. A website for Anastasia has been created which contains a downloadable version of the editor and documentation including step-by-step instructions on the use of Anastasia. A possible means of including a built-in termination checker in Anastasia using Walther Recursion has been investigated and detailed. An evaluation of Anastasia with Haskell is carried out which in- vestigates the usefulness of such an editor for avoiding syntax and typing errors and other aspects such as ease of use.
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: This paper addresses the issue of authoring XML multimedia content on the web. It focuses on methods that apply to different kinds of contents, including structured documents, factual data, and multimedia objects. It argues in favor of a template-based approach that enhances the ability for multiple applications to use the produced content. This approach is illustrated by AXEL, an innovative multipurpose client-side authoring framework (previously described in Sire et al. (2010)), intended for web users with limited skills. The versatility of the tool is illustrated through a series of use cases that demonstrate the flexibility of the approach for creating various kinds of web content.
    Multimedia Tools and Applications 05/2012; 70(2). DOI:10.1007/s11042-012-1159-0 · 1.35 Impact Factor
Show more