Declarative Gui Frameworks

Principles of Declarative-Centric GUI systems

Some kind of API is needed to read or write attributes. Some prefer "path-oriented" approaches where there is a composition hierarchy (example: windowX.frameY.widgetZ.attributeA.value). Another is the "compound key" approach. For example, each attribute may be referenced via 3 "keys":
     Example API calls:

custName = attribValue("order_form", "customer_name", "content") Xcoord = attribValue("order_form", "customer_name", "x_coordinate") setAttrib("order_form", "customer_name", "content", "Fred Jones")
There may still be sub-form level containers or widget groupers of some sort (perhaps even orthogonal), but each widget still has a unique name/ID within a given window. This allows grouping or containment to be changed without impacting existing code.

Inernally, "applicationID" and "userID" may also be part of the "key", but these are generally determined from context, such as a global (per user) "sessionInfo" object or structure, and thus don't need to be explicit parameters for the vast majority if widget calls.


See also: NonOopGuiMethodologies, EventDrivenProgramming

CategoryUserInterface


EditText of this page (last edited August 21, 2004) or FindPage with title or text search