I-DE |  | I-X Domain Editor Based on I-X Technology from AIAI, University of Edinburgh

The main window of the Domain Editor (the frame) contains several editor panels for editing different aspects (or constructs) of the domain. Currently the editors available are

- the Global Domain Editor, which edits information about the domain itself (e.g. the domain name)
- the Activity Editor, which edits information about activities and how they break down into sub-activities (refinement)
- the Grammar Editor, which currently only shows the patterns that are in use in the domain
- the Object Editor, which edits information about object classes, their properties, and how they break down into sub-classes

An editor panel may itself have different "views" that are used to display and edit the panel's constructs. The Activity Editor has three such views:

1. Minimal View: a simplified version of the activity and its refinement. The main simplification is that no constraints are shown
2. Comprehensive View: a view that can display and edit all of an activity's specification
3. Graphical View: a graphical view that uses nodes and arcs to show an activity's sub-activities and the temporal relationships between them.

### The Domain Editor Window

This window provides access to the most functions of the overall domain editor via its menu bar and access to the most commonly used functions via its tool bar. The window can display in one of three styles: simple, tabbed, and card style. The style can be changed via the Options in the File menu.

#### The Menu Bar

The menu bar has 5 standard menus:

1. File for closing the Domain Editor and for file access (open/save). All functions here manipulate the domain as a whole, not individual constructs;
2. Edit for manipulating the current construct, i.e. the construct that is currently shown in the Domain Editor's panel;
3. View for changing which panel is shown in the Domain Editor and - if applicable - for changing which view is shown in that panel;
4. Tools for additional support like consistency checks etc.;
5. Help for access to this manual, other help, and information about the application.

#### The Tool Bar

The tool bar provides access to the most commonly used functions via buttons. All these functions are also available via the menu bar (in most cases, the image on the toolbar button is shown in the menu next to the corresponding menu item. The toolbar can be switched on and off via Options in the File menu. Moving the mouse over a toolbar button will, after a while, display a "tool tip text" that gives a brief explanation of the button's function.

### Working with the Domain Editor

The Domain Editor maintains different levels of updates. The original domain model that the editor is started with is considered a public domain model, which other applications may be using for their own purposes (e.g. within a process panel). This public domain model is kept as it is unless it is explicitly "published" by the Domain Editor's user. (Note that this is true whether the Domain Editor is used in stand-alone mode or as part of another application). There is also a "draft domain model" which is the one that is being edited. The Domain Editor keeps track of any changes that are made to the draft domain model so that updates to the original domain model can be made explicitly.

#### Saving and Reverting

There are 3 levels of saving:

1. Modify Draft: When a construct has been edited in the Domain Editor Panel, initially these changes may be made only in the panel itself, not in the domain construct that is being edited. Such changes need to be transferred from the panel into the construct in the draft domain. The Domain Editor will perform this transfer (modify draft) when it is aware that this may be necessary, e.g. when a node has been added, when the user switches constructs, views or panels, or if the user decides to save or publish the draft domain. However, at any point the user can choose to explicitly modify the draft, i.e. note the changes into the draft domain via the toolbar button or the Edit menu.
2. Save to File: Modifying the draft (noting changes) does not save to file, so the next level of saving is to save the draft domain to file. As with all editing applications, it is recommended to do this frequently to ensure that work is not lost. Saving the draft domain to file will write the whole domain with all its constructs into a file in XML format. This can later be loaded into the Domain Editor for further editing, or it can be accessed by other applications.
3. Publish: The underlying public domain is not changed by any of the above (simple editing, modifying draft, or saving the draft domain to file). The only way to update the public domain is to publish the draft domain via the toolbar button or the File menu. When this happens, all pending changes are transferred to the original domain and these changes will be seen by any application that has registered as listeners to this domain. Note that publishing is always done for a whole domain, not for individual constructs. Note also that publishing a domain will not save it to file, but the same effect can be achieved by saving the draft domain to file just before or straight after publishing. At that point the draft domain and the public domain can be represented by the same XML structures. It is a good idea to publish from time to time even if the Domain Editor is running stand-alone because it will make the editor more efficient.

There are undo functions that correspond to the 3 levels of saving:

1. Undo: revert a construct to the last time it was modified in the draft domain, i.e. undo an editing step. This function is reversible with a Redo function;
2. Revert to published: revert a construct to the public version (via Edit menu), i.e. undo all changes to this construct since the domain was last published. This function is not reversible;
3. Re-load: revert the whole domain to the last time it was saved to file by opening that file via the File menu. This function is not reversible.

Note that the first two undo functions apply to an individual construct, while the third applies to the domain as a whole. There is a fourth "revert" function that also applies to the domain as a whole: "discard changes to draft" which reverts the whole domain to the public version, i.e. undo all changes to all constructs since the domain was last published.

The diagram shows the different states that the system may be in during an I-DE session, and it shows how a user can move between these states. After editing is done, the user may explicitly choose to modify the draft domain model. A modified draft domain model can be saved to file and/or published to be visible to the application (the I-X Process Panel) or both. When the domain editor is closed, the user is given the option to save the current draft to file and/or to publish the current draft to be visible to the application.