Refereed article in conference proceedings (A4)

Manipulating GUI Structures Declaratively




List of Authors: Knut Anders Stokke, Mikhail Barash, Jaakko Järvi

Conference name: ACM SIGPLAN International Conference on Generative Programming

Publisher: Association for Computing Machinery

Publication year: 2020

Book title *: GPCE 2020: Proceedings of the 19th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences

ISBN: 978-1-4503-8174-1

DOI: http://dx.doi.org/10.1145/3425898.3426956

URL: https://doi.org/10.1145/3425898.3426956

Self-archived copy’s web address: https://research.utu.fi/converis/portal/detail/Publication/50581836


Abstract
GUIs often contain structures that are incidental, not properly manipulatable through well-defined APIs. For example, modifying a list of items in a GUI's model may require extraneous bookkeeping operations in the view, such as adding and removing event handlers, and updating the menu structure. Observing GUIs in practice gives an indication that programmers may find it difficult or tedious to implement complete and convenient sets of operations for manipulating various structures: useful operations for adding, inserting, swapping, or reordering elements are often missing, inconsistent, or limited. This paper introduces a DSL for programming operations that manipulate such incidental structures. The programmer specifies structures via relations between elements, concretely by defining methods that unestablish and establish a relation. This gives the programmer an ability to describe structural transformations via rules that control which relations should hold before and after a rule is applied. The API for structure manipulation is generated from these rules. Our DSL can give an abstract view on ad-hoc structures, making it easier to provide the necessary set of operations for their convenient manipulation.

Downloadable publication

This is an electronic reprint of the original article.
This reprint may differ from the original in pagination and typographic detail. Please cite the original version.




Last updated on 2022-13-06 at 16:19