|
|
Dunelox is a library of components and utilities to implement Flex applications designed around Conversations. Conversation objects are responsible for the flow of interactions between the user, the application context and services. Conversations are started from a View component in response to an user event such as a button click. A Conversation typically reads and writes objects to a shared Application Context, may interact with the user through Dialogs and may call remote Services to get and update Business objects.
Conversations should not dependent on the View that uses them. It is a self-contained (testable!) class that implements the flow by calling Services and Dialogs that in return callback to the Conversation after completion. A basic sequence is:
- a conversation is started by providing a Function to be called after completion
- it checks its own preconditions and stops if that fails
- it may inspect the shared Application Context for relevant objects
- it asks the User (through Dialogs) for additional information if needed
- the dialog calls back to the conversation to resume the flow
- it checks whether the dialog was accepted or cancelled
- it asks a Service to perform some operation
- the Service calls back to the conversation to resume the flow
- it inspects the reply to see if it was succesfull
- it stores (by key) result objects into the shared Application Context
- any View that is bound to that key gets notified about changes
- the conversation ends
To support the implementation of this pattern, several classes are available in this library that are used to create your own Conversation subclasses, work with Dialogs, access the shared Application Context and use Service clients (or sometimes called Controllers or Delegates).
See below an overview of the architecture in which a sequence of actions is seen.
(image served by http://s3browse.com)
Features
- Abstract Conversation class for implementing your own Use Cases
- ApplicationContext for a cross-component shared Bindable Hash
- National Language Support (NLS) for easy access to globalized ResourceBundle data
- Simple Dialogs such as MessageDialog, DateSelectionDialog and ListSelectionDialog
- PageNavigationBar for paging support in DataGrids
- Authorizer for simple Role-Based-Access-Control
Related projects
- Dunelox-Flexgen - Code generator for Flex from domain classes in Rails
- Pocogese - XML-RPC messaging framework for Flex and Rails or Java
