/**
* {@link XMLEditorEvent} sent whenever the editing context changes,
* for example because the selection changes, because some data has been copied
* to the clipboard, etc.
*/
export class EditingContextChangedEvent extends XMLEditorEvent {
constructor(xmlEditor, data) {
super(xmlEditor, data, "editingContextChanged");
}
/**
* Get the <code>commandStates</code> property of this event:
* an array containing the states of all the "contextual commands"
* registered with the {@link XMLEditor}.
* <p>This array contains pairs:
* <ul>
* <li><code>enabled</code>, a boolean.
* <li><code>detail</code>, an object (generally <code>null</code>)
* which depends on the command.
* </li>
*
* @type {}
* @see XMLEditor#getCommandState
*/
get commandStates() {
// Return null rather than undefined.
return !this._commandStates? null : this._commandStates;
}
/**
* Get the <code>nodePathItems</code> property of this event:
* an array containing information about
* the full path of currently selected node.
* <p>Returned information always starts with information
* about the root element of the document.
* <p>Returned array is <em>empty</em> if there is no
* currently selected node. Otherwise it contains triplets:
* <ul>
* <li>Node UID.
* <li>Node tag.
* <li>Information about the node. A possibly empty list of strings
* separated by newlines.
* <p>First, an empty string or some flags separated by commas:
* <code>"sel"</code>: impicitely or explicitely selected,
* <code>"ro"</code>: read-only.
* <p>Possibly followed by attribute name/value pairs.
* </li>
* </ul>
*
* @type {}
*/
get nodePathItems() {
// Return null rather than undefined.
return !this._nodePathItems? null : this._nodePathItems;
}
/**
* Get the <code>clipboardUpdate</code> property of this event:
* an object if the clipboard has been updated on the server side;
* <code>null</code> otherwise.
* <p>clipboardUpdate object is <em>empty</em> if the clipboard is empty.
* Otherwise it contains:
* <ul>
* <li><code>label</code>: a short text describing the content.
* <li><code>inclusion</code>: <code>true</code> if the content
* consists in included nodes.
* <li><code>source</code>: a text representation of the content.
* </ul>
*
* @type {object}
*/
get clipboardUpdate() {
// Return null rather than undefined.
return !this._clipboardUpdate? null : this._clipboardUpdate;
}
}