After doing business application during many years, we tried to codify the most basic feature set required from any application. Following these simple "rules", we will reach far in our quest for the fully declarative application.
You'll find that everything in the MDriven Turnkey user interface is based on this.
Applications have three kinds of forms
The seek form that from nothing can search objects in persistent storage and show them in a list
The document form that is designed for a specific use case and shows information based on a root object and its associations, in as many navigational steps as necessary
The Report form that differs from the document form by being non interactive, paginated and by expanding all combinations in master detail relationships at once (non cursored)
The seek form can be used in two different modes
The first mode is typically reached from the main menu as in a context-less seek operation restricted by any number of filtering parameters
The second mode we call “Seek and pick” and is a modal form that aims to seek out one or several objects for a specific reason; such as assignment to some association. The “Seek and pick” is commonly used to set a 0..1 association end when a combo box would not suffice due to too large data quantity
Applications has three kinds of actions
Actions that act on an object based on its class
Actions that act in a given context or use case; a document or seeker form
Actions that are global and acts on neither of the above context’s, like main menu actions
Actions can be organized in structures; like sub menus
Any action can either be enabled or disabled based on state from the context
When an action is executed to following things can happen
Some code is executed
A Form may be opened
The opened form gets assigned an optional root object by execution of some code
The opened form can be opened Modal or not and if Modal an optional piece of code will be executed when the Modal form closes with OK (like with seek and pick)