Architecture of ELMA Designer

The architecture of ELMA Designer is based on the Composite Application Block/Smart Client Software Factory technology. For full information on this technology, go to http://smartclient.codeplex.com/.

In addition to the standard CAB implementation, ELMA uses additional capabilities (EleWise.ELMA.SDK.Design assembly, EleWise.ELMA.Design.CompositeUI namespace), which include:

  • Ribbon interfaces support;
  • Commands with parameter passing.

Main concepts:
WorkItem – main container for object management. It can store the object´s State or connect Services, Commands, EventTopics, views (SmartParts), subordinate WorkItems. It can also contain other objects (Items). Work Item’s status (Active, Inactive, Terminated) can be changed by calling the Activate, Deactivate, Terminate methods.
Service – any service, which implements a certain logic. A published service is available from any work element. Services are published through Services.Add<>(), and are received through Services.Get<>(), a property can be created with the ServiceDependency attribute added.
Command – any command, which can be called by visual control element or by code. Subscription can be done through a method declaration, applying the ExtCommandHandler attribute.

EventTopics - events
Work items hierarchy:
A CAB application always has one root work item.
Each work item can have children, forming a tree structure of items.
Work element inherited from the BaseWorkItem class can be attributed with a group name (GroupName property).
In ELMA Designer application there is a server, which controls the activation of work items. It makes sure that each tree level does not have more than one active work element per group.  
Here is an example of work item statuses at specific moments (when the “Processes” section is open when the “Process list”| tab is open when the creation wizard is in step 2). Active work items are typed in bold.  Names of groups, if any, are in brackets.
RootWorkItem
|- OrganizationModuleWI
|-ProcessModuleWI
|-ProcessListWI (TabItem group). Process list.
|- ProcessWI (TabItem group). “Vacation leave” process
|- ProcessWI (TabItem group). “Vacation leave” process
|-ProcessWizardWI. Process creation wizard
|- ProcessStep1WI. Step 1 of the wizard
|-ProcessStep2WI. Step 2 of the wizard
|- ProcessStep3WI. Step 3 of the wizard
|- DocumentModuleWI
|- MetadataModuleWI
The activity of working items influences the command statuses. When a work item is deactivated, all the commands become unavailable; the visual elements linked to these commands are hidden.