Generic Programming Techniques for the Construction of Graphical User Interfaces

Rinus Plasmeijer (University of Nijmegen)

With generic programming techniques one can define a Graphical Editor Component (GECt). Such an editor can be created fully automatically for any given value of any type t. The editor can be used to display or edit new value of the given type t. Based on this principle one can construct flexible, reusable and customisable graphical user interfaces. The approach is a refined version of the model-view paradigm. Instead of programming low-level GUI stuff, one only has to define and instantiate a suited data type representing the values one would like to view and edit. The look of an editor can be customised.

Furthermore, an abstract isomorphic editor of type s can be used to edit values of type t. In this way one can create a flexible library of handy editors. It is even possible to edit function types (i.e. defining new functions of the proper type) by reusing the Esther shell described above [in this abstract]. There are Editor combinators (arrows) with which one can combine editors. In this way complete complicated GUI applications can be constructed.

In the lecture we will make some small editors from scratch and some more elaborated ones using a library of editors.

Last update 12 April 2004