blob: e67e749d50d0590e39d919feef7ce368d9606e11 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Editor Model Semantics</title>
</head><body lang="EN-US">
<h1>Editor Model Semantics</h1>
<h2>EditorDefinition</h2>
The EditorDefinition defines the configurable behavior of the editor.
<h3>name : String[1]</h3>
The name of the language for which this editor model applies.
<br>
This name is not currently used.
<br>
It should be the same as the IMP language name.
<h3>extends : EditorDefinition[*]</h3>
Editor definitions can be re-used by specifying that an editor definition extends
other editor definitions.
<br>
The first defining node discovered during a depth-first search occludes all
other definitions. So definition in this model overrides all others and
definitions in a first extends override a second extend.
<br>
This should be persisted as a <tt>platform:/...</tt> reference to ensure that
it is resolvable when used.
<h3>node : AbstractNode[*]</h3>
The AST or CST node classes for which editing behavior is defined.
<h2>AbstractNode</h2>
An AbstractNode defines the configurable behavior of a particular class
of AST or CST node. Derived AbstractNodes support identification of that
class by its Ecore classifier (EcoreNode) or Java class name (JavaNode).
<h3>base : AbstractNode[*]</h3>
Node definitions can be re-used by specifying that a node definition extends
other node definitions.
<br>
The first defining node discovered during a depth-first search occludes all
other definitions. So definition in this node overrides all others and
definitions in a first base overrides a second base.
<h3>behavior : Behavior[*]</h3>
The editing behaviors defined for the node.
<h2>EcoreNode extends AbstractNode</h2>
An JavaNode defines the behavior of an AST or CST node according to
the its Ecore EClassifier.
<h3>element : EClassifier[1]</h3>
The Ecore classifier.
<h2>JavaNode extends AbstractNode</h2>
A JavaNode defines the behavior of an AST or CST node according to
its Java class name. This is necessary for non-Ecore modelled nodes
such as IFile, Resource and ResourceSet.
<h3>name : String[1]</h3>
The Java class name.
<p>
Example: <tt>org.eclipse.emf.ecore.resource.ResourceSet</tt>
<h2>Behavior</h2>
Derived behaviors configure an editing behavior of a particular
class of AST or CST node.
<h2>FoldingBehavior extends Behavior</h2>
A paragraph folding icon is shown at the top line of every CST node
for which the most derived AbstractNode exists and has a FoldingBehavior.
<h2>LabelBehavior extends Behavior</h2>
The Label icon and text of an AST or CST node within an Outline display is
configured by the most derived AbstractNode for the AST or CST node class.
<br>
The text LabelBehavior may be used recursively.
<h3>image : String[?]</h3>
The workspace-relative name of a file to be accompany the label.
<br>
This should usually be the name of an icon in the associated model edit
plug-in to ensure that icons are re-used between standard and custom
Ecore editors.
<p>
Example: <tt>/org.eclipse.emf.edit/icons/full/obj16/ResourceSet.gif</tt>
<p>
This attribute is ignored if the imageProvider is non-null and provides
a non-null image.
<h3>imageProvider : ImageProvider[?]</h3>
A provider for the workspace-relative name of a file to be accompany the label.
<br>
A custom class can be provided to make a data-dependent image selection.
<h3>format : String[1]</h3>
The java.text.MessageFormat format string.
<br>
Braces surround the 0-based index of the value of an associated elements.
<p>
Example: <tt>{0} = {1}</tt>
<h3>elements : AbstractLabelElement[*]</h3>
Each element provides the text for one format argument.
<h2>OutlineBehavior extends Behavior</h2>
The immediate children within an Outline display may be
configured by the most derived AbstractNode for the AST or CST node class.
</body></html>