Architecture
Class Overview and Function
This section contains information about classes relevant for the following:
- Administration
- Smart Client
- Additional Smart Client support
- Event Server integration with minimal implementation for map support
- Event Server integration of context menu items
- Event Server integration of context menu items, including security check on the context menu commands
Classes Relevant for Administration in Management Client
This figure gives a simplified view of the key classes created by a plug-in when executing in a Management Client. The following steps happen when creating a new Item.

- (1) PluginDefinition contains Icons and TreeNode names for the top level
- (2) PluginDefinition points to a list of ItemNodes
- (3) Each ItemNode has an image and a name of the Kind defined by the ItemNode
- (4) Each ItemNode creates an ItemManager to manage those kinds of Items
- (5) Upon a user Context Menu selection, a Create New ... menu item is displayed
- (6) When user selects Create New ..., the "CreateItem" method on the ItemManager will be called
- (7) ItemManager creates an Item with default content, and will populate its UserControl and save initial Item
Classes Relevant for view item plug-in in the Smart Client
This figure gives a simplified view of the key classes created by a ViewItem plug-in when executing in the Smart Client application.

The following list of events happens when a ViewItem is dragged onto a view:
- (1) PluginDefinition contains a list of ViewItemPlugins to be available in the Smart Client
- (2) Each ViewItemPlugin has an Icon and a Name used for the Smart Client TreeView
- (3) The ViewItemPlugin creates a ViewItemManager when a new ViewItem is created
- (4) ViewItemManager is called to create the PropertiesUserControl
- (5) ViewItemManager is called to create the ViewItemUserControl
- (6) The Smart Client will display the propertiesUserControl during Setup mode
- (7) The Smart Client will display ViewItemUSerControl in the relevant position on the view layout
Classes Relevant for Additional Smart Client Support
The following figure shows the additional plug-in possibilities.

- (1) Option to have one or more BackgroundPlugin
- (2) Option to have one or more OptionsDialogPlugin and their placement in the user interface
- (3) Option to have one or more ViewItemPlugin and their placement in the user interface
- (4) Option to have one or more ViewItemToolbarPlugin and their placement in the user interface
- (5) Option to have one or more WorkSpaceToolbarPlugin and their placement in the user interface
- (6) Option to have one or more WorkSpacePlugin and their placement in the user interface
- (7) Option to have one or more SidePanelPlugin and their placement in the user interface
- (8) Option to have one or more SettingsPanelPlugin and their placement in the user interface
Classes relevant for Event Server Integration
Event Server integration with minimal implementation for map support.

- (1) Plugindefinition contains references to ItemNodes
- (2) ItemNode contains a list of SecurityActions; must at least contain the ones to be shown
- (3) Management Client will provide options for selecting/clearing these for each role
- (4) When one is selected, the end-user will be able to view the items on a map
Event Server integration of context menu items.

- (1) ItemNode has definition of context menu relevant for that kind of item
- (2) Content menu is passed on to Smart Client and shown when right-clicking
- (3) Menu selection is passed on to Event Server, which again sends a message with messageId as TriggerCommand, data with the command and destination re. the specific context menu item that was clicked.
Event Server integration as previous, now including security check on the context menu commands.

- (1) PluginDefinition has references to all ItemNodes
- (2) ItemNode has list of all SecurityActions relevant for this Kind
- (3) SecurityActions are managed in the administration UI, that is the Management Client
- (4) ItemNode contains definition for the context menu
- (5) Context menu is displayed when right-clicking on map item of this Kind
- (6) User selection of the context menu item is received in Event Server plug-in
- (7) The plug-in has defined the command and the SecurityAction to have same key, and checks for authorization