Uploaded at Nov 12 17:22:13 2023 (UTC)
Succesfully tested at Feb 15 06:07:16 2023

Curry Package ui

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:

  • Redefine in UI2HTML.curry the path "includeURL" to a URL where the auxiliary files of this directory are stored. For instance, if you define in UI2HTML.curry

    includeURL = "http://MYURL/ui/"

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
  • Redefine in ajaxrequest.js the URL for "Throbber" images, e.g., define

    var busyImage = "http://MYURL/ui/Throbber.gif"; var readyImage = "http://MYURL/ui/Throbber.png";

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.



Download

Checkout with CPM:
cypm checkout ui 2.0.0
Package source:
ui-2.0.0.tar.gz [browse]
Source repository:
https://github.com/curry-packages/ui.git