DOM Editor 1.0
NOTE: This page refers to a previous version of the DOM Editor. For the current version please refer to DOM Editor.
In HSL, the data object model (classes, fields, enums, etc.) are defined independently of the scripting language (HSL). This is different than most computer languages, but gives HeroEngine it's distinctive power and real-time collaborative flexibility. The DOM can be manipulated with the CLI, but it is much easier to use the DOM Editor.
Using DOM Editor, you may create, view, and modify fields, classes, enums, and associations, for both the client and the server. Changes made by the DOM editor or CLI are immediately available for use in script.
The upper left section of the DOM editor allows selection of which DOM (client or server) and which definition type is currently active. Changing the definition type is done by clicking on entry for the appropriate type. The active mode will also change to match when a new definition is selected by following the "References" links, links to members of a class definition, or by using the history navigation feature.
- New Definition: Opens a dialog box which can be used to create a new definition of the current type.
- Delete Definition: Deletes the definition currently selected in the definition list.
- Refresh List: Queries the server for the list of all definitions of the currently active type.
- (Class Only) Glom Class: Finds the node currently selected in the viewport and executes the commands necessary to glom the current class onto the selected node.
Read Only Mode
By default, the DOM Editor opens in read-only mode to prevent accidental modifications of DOM definitions. In order to make any change to the DOM definitions, you must first clear the read-only flag located in the top right section of the DOM editor.
If the DOM editor is not in read-only mode, it defaults to prompt the user before it sends a change that can cause DOM modifications. When confirmation is active, a dialog box will pop up displaying the commands which it is about to send to the server, so they can be inspected for errors or unwanted changes. Clearing this checkbox causes the editor to pass all commands directly to the server without prompting for verification.
This list displays a list of all the definitions of the active type. The default sort is by name ascending. The header columns can be clicked to change which column it is sorted by or to switch between ascending and descending sort.
At the bottom of the list is a filter box, where text can be entered to limit the display to only matching rows. The checkboxes control which columns to match against. The magnifying glass icon can be clicked to clear the search text and enter a new search term.
Definition Display and Editing
Below the definition list is the edit area, which displays information for the currently selected definition. The name, description, and package may be edited, as well as other properties specific to the definition type. Definitions in the required package may not have their package changed.
Additional enum values may be added by entering their information on the last row. To remove an enum value, select the row and press the delete key. To change an enum value, select it and type the updated name for the enum value. See also: MED
New fields or parent classes may be added on the last row of the class definition. To remove a field or parent class from a class definition, select the row and press the delete key. Properties for replication are shaded and appear only for definitions in the server DOM. See also: MCD
See also: MAD
See also: MAG
For types which may be used by other classes and fields, this area lists which classes or fields make use of this definition. A definition cannot be deleted if it used by other definitions.
Atomic Sets (Class Only)
Classes which have replicated fields may have atomic sets defined for their replicated fields. See also: Replication
- Back (<): Selects the previously viewed definition from the history into the edit area.
- Forward (>): Selects the next viewed definition from the history into the edit area.
- Copy: Collects the information for the current definition and creates a matching definition in the opposite DOM.
- Cancel: Abandons the changes made to the current definition.
- Save: Saves the changes made to the current definition to the server.