ui: Declarative User Interfaces

This package contains a collection of libraries to implement graphical user interfaces as well as web-based user interfaces from declarative descriptions. Exploiting these libraries, it is possible to define the structure and functionality of a user interface independent from the concrete technology. Thus, a graphical user interface or a web-based user interface can be generated from the same description by simply changing the name of the imported libraries.

This programming technique is described in detail in this paper:

M. Hanus, C. Kluss: Declarative Programming of User Interfaces Proc. of the 11th International Symposium on Practical Aspects of Declarative Languages (PADL'09), Springer LNCS 5418, pp. 16-30, 2009


The following changes might be necessary for a local installation:

then the directory with URL http://MYURL/ui/ should contain the (public accessible!) files

  Action.js
  Throbber.gif
  Throbber.png
  ajaxrequest.js
  default.css
  prototype.js

before you put this file to the location http://MYURL/ui/ajaxrequest.js


Explanation of some files in the src directory:

UI.curry: Interface for ui descriptions

UI2GUI.curry : UIs as GUI applications UI2HTML.curry: UIs as web applications

ajaxrequest.js: used by UI2HTML for Ajax requests and DOM manipulations

GUI2HTML.curry: GUIs as web applications

TypedUI2GUI.curry: typed UIs as GUI applications TypedUI2HTML.curry: typed UIs as web applications

GUI.curry: slightly altered GUI library HTML.curry: HTML library with extensions for Ajax

SpicyWeb.curry: slightly altered SpicyWeb library Json.curry - JSON library

The directory examples contains some examples for the use of these libraries.