<md-content layout="column" layout-align="center stretch" class="content">
  <ul class="breadcrumb">
    <li><a href="#/documentation/2.0.2">2.0.2</a> <span class="divider">/</span></li>
    <li><a href="#/documentation/2.0.2/language/overview">Language</a> <span class="divider">/</span></li>
    <li><a href="#/documentation/2.0.2/language/widgets">Widgets</a></li>
  </ul>
		<h2 id="Select">Select</h2>
		<h3 id="description">Description</h3>
		<p>The select widget can be used to display and edit a mono-valued property which can take one of several existing values. It can thus be used to edit a mono-valued EReference with a sizable list of potential values or an EEnum. The properties available on this widget are very similar to the ones available on a 
			<a href="#/documentation/2.0.2/language/widgets/radio">radio</a> widget. On top of the common properties of all widgets (identifier, labelExpression, helpExpression, isEnabledExpression, propertyValidationRules), it has the following properties:
		</p>
		<ul>
			<li>valueExpression: The value expression is used to compute the value to select. This expression must return an object.</li>
			<li>editExpression: This expression will be executed when the user will select a new value. The selected value will be accessible using the variable 
				<code>newValue</code>. The variable 
				<code>newValue</code> will contain a candidate selected from the result of the 
				<code>candidatesExpression</code>. This expression does not have to return anything.
			</li>
			<li>candidatesExpression: This expression is used to compute all the values to display in the select widget. This expression must return a collection of objects.</li>
			<li>candidateDisplayExpression: This expression is used to compute the label of each value in the select widget. Each value will be accessible using the variable 
				<code>candidate</code>. This expression must return a string.
			</li>
			<li>style: The style of the select widget.</li>
			<li>conditionalStyles: All the conditional styles of the select widget.</li>
		</ul>
		<h3 id="displayereference">Display an EReference</h3>
		<p>In order to display in the user interface a select widget with the value of a mono-valued EReference, you can create a select widget with the following properties:</p>
		<ul>
			<li>labelExpression: 
				<code>aql:'Supertype'</code>
			</li>
			<li>valueExpression: 
				<code>aql:self.supertype</code>
			</li>
			<li>editExpression: 
				<code>aql:self.eSet('supertype', newValue)</code>
			</li>
			<li>candidatesExpression: 
				<code>aql:aql:self.eResource().getContents().eAllContents(packagename::Class)</code>
			</li>
			<li>candidateDisplayExpression: 
				<code>aql:candidate.name</code>
			</li>
		</ul>
		<p>In this scenario, we will display a property with the eType &#171;Class&#187; coming from a package with the name &#171;packagename&#187;. EEF does not provide a default interpreter but you can easily configure EEF to be used with the AQL interpreter. In the integration of EEF with the AQL interpreter, you can register additional services, written in Java, in which you can expose to AQL new operations. The operation 
			<code>eSet(java.lang.String, java.lang.Object)</code> used in the example does not exist in AQL. You would have to create it yourself.
		</p>
</md-content>
