blob: 5660f4a75767088b41388f00200ab465c116bd09 [file] [log] [blame]
<md-content layout="column" layout-align="center stretch" class="content">
<ul class="breadcrumb">
<li><a href="#/documentation/2.0.2">2.0.2</a></li>
</ul>
<h2 id="Overview">Overview</h2>
<p>The new language for Eclipse EEF has been created to let the specifiers build easily their user interfaces. Given the fact that lot of Sirius specifiers need to build complex Properties view to match their designers, this new language has embraced the same philosophy as Eclipse Sirius to help Sirius specifiers get on board quickly.</p>
<p>Most of the concepts of the language can be configured using expressions based on various interpreters. By using EEF along with Sirius, you can leverage all the interpreters available in Sirius and if you want to use EEF out of Eclipse Sirius, you can easily plug your own interpreter. By using EEF with AQL, you can navigate very easily in the concepts of your models to compute what you want to display and edit.</p>
<p>In order to be as powerful to build a form-based user interface as Sirius is for diagrams, the language used by EEF is not linked to the EMF-based meta-models of the specifier. The EEF language could have easily decided that an EMF attribute with the type EString must create a text widget with the value of the attribute but by not being linked in this fashion with the meta-model of the specifiers, you can create text widget and set its value to anything that you can compute in an expression.</p>
<p>Our goal is to provide a language which can handle simple use cases easily and yet support complex use cases with advanced features like dynamic mappings and semantic candidates.</p>
<h3 id="overview">Overview of the language</h3>
<p class="image">
<img class="language1-6-0" border="0" src="sections/documentation/2.0.2/language/language.png"/>
</p>
<p>The EEF language can be summarized using a couple of concepts. The root container of all the other concept is the view, which contains the various pages of the user interface. In the view you can also find the groups, which represent various sections of the pages. The pages can use various groups and an unique group can be used by several pages. Inside of a group, you can create different kind of controls:</p>
<ul>
<li>widgets</li>
<li>containers</li>
<li>dynamic mappings</li>
</ul>
<p>While the concept of widgets is pretty straightforward, containers are used to specify a custom layout (grid, vertical, horizontal) and dynamic mappings are used to create multiple widgets from one definition. On top of those concepts, EEF also provides some additional concepts for the validation and styling of the various widgets.</p>
<h3 id="concepts">Concepts of the language</h3>
<ul>
<li>
<a href="#/documentation/2.0.2/language/view">View</a>
</li>
<li>
<a href="#/documentation/2.0.2/language/page">Page</a>
</li>
<li>
<a href="#/documentation/2.0.2/language/group">Group</a>
</li>
<li>
<a href="#/documentation/2.0.2/language/widgets">Widgets</a>
</li>
<li>
<a href="#/documentation/2.0.2/language/container">Container &amp; Layout</a>
</li>
<li>
<a href="#/documentation/2.0.2/language/dynamicmappings">Dynamic Mappings</a>
</li>
<li>
<a href="#/documentation/2.0.2/language/validation">Validation</a>
</li>
</ul>
</md-content>