[483574] Add release notes and documentation

TypedVariableValueDialog has been moved to internal.

Bug: 483574
Change-Id: If6e71e9eb845cf3498b66004a8ff43e74b093c8b
Signed-off-by: Laurent Fasani <laurent.fasani@obeo.fr>
diff --git a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html
index 13fae18..657de24 100644
--- a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html
+++ b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html
@@ -13,7 +13,7 @@
 				<a href="#ReleaseNotesforSirius">Release Notes for Sirius</a>
 				<ol style="list-style: disc;">
 					<li>
-						<a href="#sirius3.1.3">Changes in Sirius 3.1.3</a>
+						<a href="#sirius3.1.3.100">Changes in Sirius 3.1.3.100</a>
 						<ol style="list-style: disc;">
 							<li>
 								<a href="#UserVisibleChanges">User-Visible Changes</a>
@@ -27,9 +27,12 @@
 						</ol>
 					</li>
 					<li>
-						<a href="#sirius3.1.1">Changes in Sirius 3.1.1</a>
+						<a href="#sirius3.1.3">Changes in Sirius 3.1.3</a>
 						<ol style="list-style: disc;">
 							<li>
+								<a href="#UserVisibleChanges2">User-Visible Changes</a>
+							</li>
+							<li>
 								<a href="#SpecifierVisibleChanges2">Specifier-Visible Changes</a>
 							</li>
 							<li>
@@ -38,12 +41,9 @@
 						</ol>
 					</li>
 					<li>
-						<a href="#sirius3.1.0">Changes in Sirius 3.1.0</a>
+						<a href="#sirius3.1.1">Changes in Sirius 3.1.1</a>
 						<ol style="list-style: disc;">
 							<li>
-								<a href="#UserVisibleChanges2">User-Visible Changes</a>
-							</li>
-							<li>
 								<a href="#SpecifierVisibleChanges3">Specifier-Visible Changes</a>
 							</li>
 							<li>
@@ -52,7 +52,7 @@
 						</ol>
 					</li>
 					<li>
-						<a href="#sirius3.0.0">Changes in Sirius 3.0.0</a>
+						<a href="#sirius3.1.0">Changes in Sirius 3.1.0</a>
 						<ol style="list-style: disc;">
 							<li>
 								<a href="#UserVisibleChanges3">User-Visible Changes</a>
@@ -66,7 +66,7 @@
 						</ol>
 					</li>
 					<li>
-						<a href="#sirius2.0.0">Changes in Sirius 2.0.0</a>
+						<a href="#sirius3.0.0">Changes in Sirius 3.0.0</a>
 						<ol style="list-style: disc;">
 							<li>
 								<a href="#UserVisibleChanges4">User-Visible Changes</a>
@@ -75,6 +75,20 @@
 								<a href="#SpecifierVisibleChanges5">Specifier-Visible Changes</a>
 							</li>
 							<li>
+								<a href="#DeveloperVisibleChanges5">Developer-Visible Changes</a>
+							</li>
+						</ol>
+					</li>
+					<li>
+						<a href="#sirius2.0.0">Changes in Sirius 2.0.0</a>
+						<ol style="list-style: disc;">
+							<li>
+								<a href="#UserVisibleChanges5">User-Visible Changes</a>
+							</li>
+							<li>
+								<a href="#SpecifierVisibleChanges6">Specifier-Visible Changes</a>
+							</li>
+							<li>
 								<a href="#APIChanges">API Changes</a>
 							</li>
 						</ol>
@@ -85,20 +99,88 @@
 		<p>This document contains the release notes for recent major releases of Sirius. See also 
 			<a href="Release_Notes_Previous.html">the release notes from previous versions</a> for details about older releases.
 		</p>
-		<h2 id="sirius3.1.3">Changes in Sirius 3.1.3</h2>
+		<h2 id="sirius3.1.3.100">Changes in Sirius 3.1.3.100</h2>
 		<h3 id="UserVisibleChanges">User-Visible Changes</h3>
 		<ul>
+			<li><span class="label label-success">Added</span> The user can now filter elements according to a Typed variable (String, Integer, EEnum or any EDataType). If a user applies a filter containing Typed Variables, a dialog is displayed to allow user entering the Typed Variable values. That values can be used as variables in the Condition Expression of the Variable Filter.</li>
+		</ul>
+		<h3 id="SpecifierVisibleChanges">Specifier-Visible Changes</h3>
+		<ul>
+			<li><span class="label label-success">Added</span> It is possible to create Typed Variable under Variable Filter.</li>
+			<li><span class="label label-info">Modified</span> The variable under VariableFilter, previously named &#171;Variable&#187;, is renamed to &#171;Select Model Element Variable&#187;. It is functionally equivalent.</li>
+		</ul>
+		<h3 id="DeveloperVisibleChanges">Developer-Visible Changes</h3>
+		<h4 id="Changesinorg.eclipse.sirius">Changes in 
+			<code>org.eclipse.sirius</code>
+		</h4>
+		<ul>
+			<li><span class="label label-success">Added</span> 
+				<code>org.eclipse.sirius.viewpoint.description.TypedVariable</code> has been created.
+			</li>
+			<li><span class="label label-success">Added</span> 
+				<code>org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription</code> has been created as tag interface for variables that require user interaction to be valued.
+			</li>
+			<li><span class="label label-info">Modified</span> 
+				<code>org.eclipse.sirius.viewpoint.description.tool.SelectModelElementVariable</code> now implements 
+				<code>org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription</code>.
+			</li>
+			<li><span class="label label-info">Modified</span> 
+				<code>org.eclipse.sirius.viewpoint.description.tool.AbstractVariable</code> has been moved to 
+				<code>org.eclipse.sirius.viewpoint.description.AbstractVariable</code>.
+			</li>
+			<li><span class="label label-info">Modified</span> 
+				<code>org.eclipse.sirius.viewpoint.description.tool.SubVariable</code> has been moved to 
+				<code>org.eclipse.sirius.viewpoint.description.SubVariable</code>.
+			</li>
+		</ul>
+		<h4 id="Changesinorg.eclipse.sirius.diagram">Changes in 
+			<code>org.eclipse.sirius.diagram</code>
+		</h4>
+		<ul>
+			<li><span class="label label-success">Added</span> 
+				<code>org.eclipse.sirius.diagram.VariableValue</code>, 
+				<code>org.eclipse.sirius.diagram.TypedVariableValue</code> and 
+				<code>org.eclipse.sirius.diagram.EObjectVariableValue</code> has been created.
+			</li>
+			<li><span class="label label-success">Added</span> 
+				<code>org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.resetVariables()</code> has been created to indicate that variables have to be computed again.
+			</li>
+			<li><span class="label label-success">Added</span> 
+				<code>org.eclipse.sirius.tools.api.command.ui.UICallBack.askForTypedVariable(List&lt;TypedVariable&gt;, List&lt;String&gt;)</code> has been created. 
+				<code>org.eclipse.sirius.tools.api.command.ui.NoUICallback</code> and 
+				<code>org.eclipse.sirius.ui.tools.api.command.AbstractSWTCallback</code> now implement that method.
+			</li>
+			<li><span class="label label-info">Modified</span> The type of 
+				<code>org.eclipse.sirius.diagram.description.filter.VariableFilter.ownedVariable</code> has been changed to 
+				<code>org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription</code>.
+			</li>
+			<li><span class="label label-info">Modified</span> The type of 
+				<code>org.eclipse.sirius.diagram.FilterVariableHistory.ownedValues</code> has been changed to 
+				<code>org.eclipse.sirius.diagram.VariableValue</code>.
+			</li>
+			<li><span class="label label-danger">Removed</span> 
+				<code>org.eclipse.sirius.diagram.description.filter.FilterVariable</code> has been removed. It is replaced by 
+				<code>org.eclipse.sirius.viewpoint.description.tool.SelectModelElementVariable</code>.
+			</li>
+			<li><span class="label label-danger">Removed</span> 
+				<code>org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.setFilterContext()</code> has been removed. This method was, in part, useless and is replaced by 
+				<code>org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.resetVariables()</code>.
+			</li>
+		</ul>
+		<h2 id="sirius3.1.3">Changes in Sirius 3.1.3</h2>
+		<h3 id="UserVisibleChanges2">User-Visible Changes</h3>
+		<ul>
 			<li><span class="label label-info">Modified</span> Now if an object is locked and cannot be modified according to 
 				<code>IPermissionAuthority</code>, the properties view will not be editable if this locked object is selected from the Model Explorer view, as it is the case for selection from dialect editors.
 			</li>
 		</ul>
-		<h3 id="SpecifierVisibleChanges">Specifier-Visible Changes</h3>
+		<h3 id="SpecifierVisibleChanges2">Specifier-Visible Changes</h3>
 		<ul>
 			<li><span class="label label-info">Modified</span> The 
 				<code>BorderSizeComputationExpression</code> migration has been corrected to recursively handle the sub container mappings. VSM created or migrated with Sirius 3.1 (3.1.0, 3.1.1 or 3.1.2) might require a manual modification for the style descriptions of sub container mappings with border size computation equals to 0 as we cannot determine if they were added (or updated) after or before the migration: starting with Sirius 3.1.0, no border will be displayed for a 0 pixel value whereas with older version container alwyas had at least a 1 pixel border. 
 			</li>
 		</ul>
-		<h3 id="DeveloperVisibleChanges">Developer-Visible Changes</h3>
+		<h3 id="DeveloperVisibleChanges2">Developer-Visible Changes</h3>
 		<h4 id="Changesinorg.eclipse.sirius.ext.emf.ui">Changes in 
 			<code>org.eclipse.sirius.ext.emf.ui</code>
 		</h4>
@@ -122,12 +204,12 @@
 			</li>
 		</ul>
 		<h2 id="sirius3.1.1">Changes in Sirius 3.1.1</h2>
-		<h3 id="SpecifierVisibleChanges2">Specifier-Visible Changes</h3>
+		<h3 id="SpecifierVisibleChanges3">Specifier-Visible Changes</h3>
 		<ul>
 			<li><span class="label label-info">Modified</span> The use of type literals in operations like filter() or oclIsKindOf() requires to explicitly add the domain meta-models plug-ins to the dependencies of the Viewpoint Specification Project. The documentation has been modified to recommend this.</li>
 		</ul>
-		<h3 id="DeveloperVisibleChanges2">Developer-Visible Changes</h3>
-		<h4 id="Changesinorg.eclipse.sirius">Changes in 
+		<h3 id="DeveloperVisibleChanges3">Developer-Visible Changes</h3>
+		<h4 id="Changesinorg.eclipse.sirius2">Changes in 
 			<code>org.eclipse.sirius</code>
 		</h4>
 		<ul>
@@ -145,7 +227,7 @@
 			</li>
 		</ul>
 		<h2 id="sirius3.1.0">Changes in Sirius 3.1.0</h2>
-		<h3 id="UserVisibleChanges2">User-Visible Changes</h3>
+		<h3 id="UserVisibleChanges3">User-Visible Changes</h3>
 		<ul>
 			<li><span class="label label-success">Added</span> A new feature allows to snap to all shapes (instead of just to snap to sibling shapes). The <kdb>F4</kdb> shortcut key activates this mode when you resize a node, move a node or move a bendpoint of an edge, see 
 				<a href="./user/diagrams/Diagrams.html#snap_to_shapes">the documentation</a> for details.
@@ -184,7 +266,7 @@
 				<em>Arrange Linked Border Nodes</em> as it is border nodes which are layouted and not bordered nodes.
 			</li>
 		</ul>
-		<h3 id="SpecifierVisibleChanges3">Specifier-Visible Changes</h3>
+		<h3 id="SpecifierVisibleChanges4">Specifier-Visible Changes</h3>
 		<ul>
 			<li><span class="label label-info">Modified</span> The 
 				<em>Acceleo Query Language</em> (AQL) interpreter  has been improved. AQL, and its support in Sirius, is no longer considered experimental, and instead is now the recommended query language to use for new VSMs. Improvements mostly concern better completion and validation, and more precise error reporting. In particular AQL expressions will now be able to display warnings and errors in the Interpreter view. The message displayed in the Interpreter view after an evaluation has also been improved to display the qualified name of the type of the value computed (
@@ -231,7 +313,7 @@
 				<code>IPermissionAuthority</code>) of the potential to delete objects. This is the reverse order of what was done before, and can have performance impacts if the precondition is slow. The specifier will to take care to ensure a good performance for the precondition expression of the delete tool.
 			</li>
 		</ul>
-		<h3 id="DeveloperVisibleChanges3">Developer-Visible Changes</h3>
+		<h3 id="DeveloperVisibleChanges4">Developer-Visible Changes</h3>
 		<h4 id="Partialsupportforinternationalization">Partial support for internationalization</h4>
 		<p>Sirius 3.1 introduces partial support for internationalization: all literal strings from the runtime part of Sirius are now externalized and can be localized by third parties by providing the appropriate &#171;language packs&#187; as OSGi fragments. Note that this does not concern the VSM editor&#8217;s UI, the VSMs themselves, or the parts of the UI inherited from Eclipse/EMF/GEF/GMF and other libraries and frameworks used by Sirius.</p>
 		<p>Some API changes were required to enable this. While technically breaking changes if interpreting strictly the OSGi versioning rules, the major version number of the impacted bundles was not incremented as the changes only concern classes that should not impact the vast majority of users. Most breaking changes concern the plug-in/activator classes from each bundle. They are:</p>
@@ -472,7 +554,7 @@
 				<code>org.eclipse.sirius.common.tools.api.contentassist.ContentProposalBuilder</code> used to build the content proposals with their various parameters more easily.
 			</li>
 		</ul>
-		<h4 id="Changesinorg.eclipse.sirius2">Changes in 
+		<h4 id="Changesinorg.eclipse.sirius3">Changes in 
 			<code>org.eclipse.sirius</code>
 		</h4>
 		<ul>
@@ -680,7 +762,7 @@
 			</li>
 		</ul>
 		<h2 id="sirius3.0.0">Changes in Sirius 3.0.0</h2>
-		<h3 id="UserVisibleChanges3">User-Visible Changes</h3>
+		<h3 id="UserVisibleChanges4">User-Visible Changes</h3>
 		<ul>
 			<li><span class="label label-success">Added</span> The ability to print table representations has been re-introduced.</li>
 			<li><span class="label label-success">Added</span> The quick outline feature has been added for tree and table editors, see documentation for details.</li>
@@ -705,7 +787,7 @@
 				<em>Viewpoint Selection</em> dialog and wizard page, the &#171;plug-in&#187; decorator for viewpoints loaded from plug-ins is removed, and a &#171;Folder&#187; decorator for viewpoints loaded from the current workspace has been added. This makes the icons more visible in the most common where viewpoints come from installed plug-ins.
 			</li>
 		</ul>
-		<h3 id="SpecifierVisibleChanges4">Specifier-Visible Changes</h3>
+		<h3 id="SpecifierVisibleChanges5">Specifier-Visible Changes</h3>
 		<ul>
 			<li><span class="label label-success">Added</span> <span class="label label-info">Experimental</span> Optional support for the experimental 
 				<em>Acceleo Query Language</em> (AQL) has been added to write interpreted expressions.  It is provided by the 
@@ -780,7 +862,7 @@
 				<em>EStructuralFeature</em> (inherited or with same name).
 			</li>
 		</ul>
-		<h3 id="DeveloperVisibleChanges4">Developer-Visible Changes</h3>
+		<h3 id="DeveloperVisibleChanges5">Developer-Visible Changes</h3>
 		<p>The most important and impacting changes in this release are (details below in plug-in specific sections):</p>
 		<ul>
 			<li><span class="label label-success">Added</span>  The new extension point 
@@ -981,7 +1063,7 @@
 				<code>org.eclipse.sirius.common.ui.ext</code>.
 			</li>
 		</ul>
-		<h4 id="Changesinorg.eclipse.sirius3">Changes in 
+		<h4 id="Changesinorg.eclipse.sirius4">Changes in 
 			<code>org.eclipse.sirius</code>
 		</h4>
 		<ul>
@@ -1177,7 +1259,7 @@
 				<code>org.eclipse.sirius.editor.tools.api.assist.TypeContentProposalProvider.bindCompletionProcessor(AbstractPropertySection, Text)</code>, the difference is that it binds the completion processors available in plugins to the text.
 			</li>
 		</ul>
-		<h4 id="Changesinorg.eclipse.sirius.diagram">Changes in 
+		<h4 id="Changesinorg.eclipse.sirius.diagram2">Changes in 
 			<code>org.eclipse.sirius.diagram</code>
 		</h4>
 		<ul>
@@ -1630,7 +1712,7 @@
 			<code>org.eclipse.sirius.xxx.ui.ext</code>, allowing them not have all that functionalities they may not want.
 		</p>
 		<h2 id="sirius2.0.0">Changes in Sirius 2.0.0</h2>
-		<h3 id="UserVisibleChanges4">User-Visible Changes</h3>
+		<h3 id="UserVisibleChanges5">User-Visible Changes</h3>
 		<ul>
 			<li>It is now possible to select element that intersects the selection rectangle and not that is completely contained by the selection rectangle. This new behavior is enabled when user selects elements from right to left. The normal mode (previous mode) remains when the user selects elements from left to right.</li>
 			<li>The edges appearance is now kept, as much as possible, when one of its extremity is moved. A move of an extremity should move only the closest segment of the edge.</li>
@@ -1681,7 +1763,7 @@
 			<li>Reconnection of an edge will only now move the minimum necessary bendpoints instead of reseting it to default.</li>
 			<li>A new action has been added to reset the diagram (or container) origin: the diagram (or container) bounds (the rectangle formed by the highest, the leftmost, the lowest and the rightmost children elements) can have a negative origin or can be shifted toward the bottom-right with a blank zone at the top-left. This action aims to move all diagram (or container) elements so that the it retrieves its origin while keeping elements layout.</li>
 		</ul>
-		<h3 id="SpecifierVisibleChanges5">Specifier-Visible Changes</h3>
+		<h3 id="SpecifierVisibleChanges6">Specifier-Visible Changes</h3>
 		<ul>
 			<li>The specifier can now choose to hold the edge ends toward the center of the source, target or both. New fields within the &#171;advance&#187; tab of EdgeStyle description have been added to choose for which source or target mappings an edge should be centered. See 
 				<a href="specifier/diagrams/Diagrams.html#edges_styles">Edges Styles &gt; Edge Centering</a> in the specifier manual for more details.
@@ -1692,7 +1774,7 @@
 			<li>&#171;Lozenge&#187; is replaced by &#171;Diamond&#187; in diagram style.</li>
 		</ul>
 		<h3 id="APIChanges">API Changes</h3>
-		<h4 id="Changesinorg.eclipse.sirius4">Changes in 
+		<h4 id="Changesinorg.eclipse.sirius5">Changes in 
 			<code>org.eclipse.sirius</code>
 		</h4>
 		<ul>
@@ -1819,7 +1901,7 @@
 				<code>IServiceLocator.getService()</code> on the site.
 			</li>
 		</ul>
-		<h4 id="Changesinorg.eclipse.sirius.diagram2">Changes in 
+		<h4 id="Changesinorg.eclipse.sirius.diagram3">Changes in 
 			<code>org.eclipse.sirius.diagram</code>
 		</h4>
 		<ul>
diff --git a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile
index f5513b9..d70d7c1 100644
--- a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile
+++ b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile
@@ -4,6 +4,37 @@
 
 This document contains the release notes for recent major releases of Sirius. See also "the release notes from previous versions":Release_Notes_Previous.html for details about older releases.
 
+h2(#sirius3.1.3.100). Changes in Sirius 3.1.3.100
+
+h3. User-Visible Changes
+
+* <span class="label label-success">Added</span> The user can now filter elements according to a Typed variable (String, Integer, EEnum or any EDataType). If a user applies a filter containing Typed Variables, a dialog is displayed to allow user entering the Typed Variable values. That values can be used as variables in the Condition Expression of the Variable Filter.
+
+h3. Specifier-Visible Changes
+
+* <span class="label label-success">Added</span> It is possible to create Typed Variable under Variable Filter.
+* <span class="label label-info">Modified</span> The variable under VariableFilter, previously named "Variable", is renamed to "Select Model Element Variable". It is functionally equivalent.
+
+h3. Developer-Visible Changes
+
+h4. Changes in @org.eclipse.sirius@
+
+* <span class="label label-success">Added</span> @org.eclipse.sirius.viewpoint.description.TypedVariable@ has been created.
+* <span class="label label-success">Added</span> @org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription@ has been created as tag interface for variables that require user interaction to be valued.
+* <span class="label label-info">Modified</span> @org.eclipse.sirius.viewpoint.description.tool.SelectModelElementVariable@ now implements @org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription@.
+* <span class="label label-info">Modified</span> @org.eclipse.sirius.viewpoint.description.tool.AbstractVariable@ has been moved to @org.eclipse.sirius.viewpoint.description.AbstractVariable@.
+* <span class="label label-info">Modified</span> @org.eclipse.sirius.viewpoint.description.tool.SubVariable@ has been moved to @org.eclipse.sirius.viewpoint.description.SubVariable@.
+
+h4. Changes in @org.eclipse.sirius.diagram@
+
+* <span class="label label-success">Added</span> @org.eclipse.sirius.diagram.VariableValue@, @org.eclipse.sirius.diagram.TypedVariableValue@ and @org.eclipse.sirius.diagram.EObjectVariableValue@ has been created.
+* <span class="label label-success">Added</span> @org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.resetVariables()@ has been created to indicate that variables have to be computed again.
+* <span class="label label-success">Added</span> @org.eclipse.sirius.tools.api.command.ui.UICallBack.askForTypedVariable(List<TypedVariable>, List<String>)@ has been created. @org.eclipse.sirius.tools.api.command.ui.NoUICallback@ and @org.eclipse.sirius.ui.tools.api.command.AbstractSWTCallback@ now implement that method.
+* <span class="label label-info">Modified</span> The type of @org.eclipse.sirius.diagram.description.filter.VariableFilter.ownedVariable@ has been changed to @org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription@.
+* <span class="label label-info">Modified</span> The type of @org.eclipse.sirius.diagram.FilterVariableHistory.ownedValues@ has been changed to @org.eclipse.sirius.diagram.VariableValue@.
+* <span class="label label-danger">Removed</span> @org.eclipse.sirius.diagram.description.filter.FilterVariable@ has been removed. It is replaced by @org.eclipse.sirius.viewpoint.description.tool.SelectModelElementVariable@.
+* <span class="label label-danger">Removed</span> @org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.setFilterContext()@ has been removed. This method was, in part, useless and is replaced by @org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.resetVariables()@.
+
 h2(#sirius3.1.3). Changes in Sirius 3.1.3
 
 h3. User-Visible Changes
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/Diagrams.html b/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/Diagrams.html
index f4fe9a5..33a286a 100644
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/Diagrams.html
+++ b/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/Diagrams.html
@@ -1475,8 +1475,47 @@
 		<h3 id="variable_filter">Variable Filter</h3>
 		<p>A 
 			<em>Variable Filter</em> is similar to a 
-			<em>Mapping Filter</em>, except that instead of using a list of mappings to select the candidate elements to filter, it opens a dialog box from which the user can select the specific elements he wants to filter. The configuration of the dialog box uses the same properties and semantic as the 
-			<a href="#selection_wizard">Selection Wizard</a> tool. Refer to its documentation for the details.
+			<em>Mapping Filter</em>, except that instead of using a list of mappings to select the candidate elements to filter, all represented elements are candidates but can be filtered with a Semantic Condition Expression.
+			<br/>In that expression, the specifier can use variables that are defined in the variable filter.
+		</p>
+		<ul>
+			<li>Select Model Element Variable : it opens a dialog box from which the user can select a collection of EObjects. The configuration of the dialog box uses the same properties and semantic as the 
+				<a href="#selection_wizard">Selection Wizard</a> tool. Refer to its documentation for the details. 
+			</li>
+			<li>Typed Variable : see 
+				<a href="#filter_with_typed_variable">Filter with Typed Variable</a> 
+			</li>
+		</ul>
+		<h4 id="filter_with_typed_variable">Filter with Typed Variable</h4>
+		<p>A Typed Variable is a variable which value type is a 
+			<em>EDataType</em> as chosen by the specifier and which value is filled by the user when applying the variable filter.
+			<br/>An interpreted expression allows defining the default value.
+		</p>
+		<p>
+			<img border="0" src="images/typedVariable_PropertyView.png"/>
+		</p>
+		<p>When the user applies a variable filter with typed variables, a dialog box is displayed to allow user entering the values. 
+			<br/>This dialog box is prompted after all 
+			<em>Select Model Element</em> wizard have been prompted.
+			<br/>It contains as many line as number of typed variables under the variable filter.
+			<br/>The user documentation is displayed as tooltip on question mark.
+			<br/>The default value is the result of the interpreted expression defined on VSM.
+		</p>
+		<p>
+			<img border="0" src="images/dialog_TypedVariableValue.png"/>
+		</p>
+		<p>
+			<strong>EDataType class instantiation</strong>
+		</p>
+		<p>Note that whatever the type of variable is, the field is a text field.</p>
+		<p>In order that the EDataType class is instantiable, the value given by the user should follow rules which depend on how it is triggered by EMF mechanism.
+			<br/>If the EFactory of the EDataType is not overloaded, the class corresponding to the EDataType must have a constructor with a String parameter. At instantiation, the string argument will be the string input by the user. This string argument is translated into the right data in the class constructor for example.
+			<br/>What is done in the constructor described above can also be done overloading the EDataType class EFactory.
+		</p>
+		<p>Example:
+			<br/>If your class represents a point coordinates with two fields x and y of type int, the string input by the user could be 
+			<em lang="integer">,[integer]</em>. This kind of information could be given to the user through the 
+			<em>User documentation</em>
 		</p>
 		<h2 id="validation">Validation Rules</h2>
 		<p>A diagram description can define custom validation rules which will only be applied when launching a validation on an instance of this diagram (using the 
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/Diagrams.textile b/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/Diagrams.textile
index 7384fb6..5c16d19 100644
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/Diagrams.textile
+++ b/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/Diagrams.textile
@@ -594,7 +594,36 @@
 
 h3(#variable_filter). Variable Filter
 
-A _Variable Filter_ is similar to a _Mapping Filter_, except that instead of using a list of mappings to select the candidate elements to filter, it opens a dialog box from which the user can select the specific elements he wants to filter. The configuration of the dialog box uses the same properties and semantic as the "Selection Wizard":#selection_wizard tool. Refer to its documentation for the details.
+A _Variable Filter_ is similar to a _Mapping Filter_, except that instead of using a list of mappings to select the candidate elements to filter, all represented elements are candidates but can be filtered with a Semantic Condition Expression.
+In that expression, the specifier can use variables that are defined in the variable filter.
+* Select Model Element Variable : it opens a dialog box from which the user can select a collection of EObjects. The configuration of the dialog box uses the same properties and semantic as the "Selection Wizard":#selection_wizard tool. Refer to its documentation for the details. 
+* Typed Variable : see "Filter with Typed Variable":#filter_with_typed_variable 
+ 
+h4(#filter_with_typed_variable). Filter with Typed Variable
+
+A Typed Variable is a variable which value type is a _EDataType_ as chosen by the specifier and which value is filled by the user when applying the variable filter.
+An interpreted expression allows defining the default value.
+
+!images/typedVariable_PropertyView.png!
+
+When the user applies a variable filter with typed variables, a dialog box is displayed to allow user entering the values. 
+This dialog box is prompted after all _Select Model Element_ wizard have been prompted.
+It contains as many line as number of typed variables under the variable filter.
+The user documentation is displayed as tooltip on question mark.
+The default value is the result of the interpreted expression defined on VSM.
+
+!images/dialog_TypedVariableValue.png!
+
+*EDataType class instantiation*
+
+Note that whatever the type of variable is, the field is a text field.
+
+In order that the EDataType class is instantiable, the value given by the user should follow rules which depend on how it is triggered by EMF mechanism.
+If the EFactory of the EDataType is not overloaded, the class corresponding to the EDataType must have a constructor with a String parameter. At instantiation, the string argument will be the string input by the user. This string argument is translated into the right data in the class constructor for example.
+What is done in the constructor described above can also be done overloading the EDataType class EFactory.
+
+Example:
+If your class represents a point coordinates with two fields x and y of type int, the string input by the user could be _[integer],[integer]_. This kind of information could be given to the user through the _User documentation_
 
 h2(#validation). Validation Rules
 
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/images/dialog_TypedVariableValue.png b/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/images/dialog_TypedVariableValue.png
new file mode 100644
index 0000000..7ea8238
--- /dev/null
+++ b/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/images/dialog_TypedVariableValue.png
Binary files differ
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/images/typedVariable_PropertyView.png b/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/images/typedVariable_PropertyView.png
new file mode 100644
index 0000000..1f516e3
--- /dev/null
+++ b/plugins/org.eclipse.sirius.doc/doc/specifier/diagrams/images/typedVariable_PropertyView.png
Binary files differ
diff --git a/plugins/org.eclipse.sirius.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.ui/META-INF/MANIFEST.MF
index 81adf2f..0d3a4cb 100644
--- a/plugins/org.eclipse.sirius.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.sirius.ui/META-INF/MANIFEST.MF
@@ -47,7 +47,6 @@
  org.eclipse.sirius.ui.tools.api.project;version="2.0.5",
  org.eclipse.sirius.ui.tools.api.properties;version="2.1.0",
  org.eclipse.sirius.ui.tools.api.provider;version="2.0.4",
- org.eclipse.sirius.ui.tools.api.selection;version="3.1.3",
  org.eclipse.sirius.ui.tools.api.views;version="2.1.0",
  org.eclipse.sirius.ui.tools.api.views.common.item;version="2.0.4",
  org.eclipse.sirius.ui.tools.api.views.interpreterview;version="2.0.4",
@@ -69,6 +68,7 @@
  org.eclipse.sirius.ui.tools.internal.perspectives;x-internal:=true;version="2.0.4",
  org.eclipse.sirius.ui.tools.internal.preference;x-internal:=true;version="2.0.5",
  org.eclipse.sirius.ui.tools.internal.properties;x-internal:=true;version="2.0.3",
+ org.eclipse.sirius.ui.tools.internal.selection;x-internal:=true;version="3.1.3",
  org.eclipse.sirius.ui.tools.internal.util;x-internal:=true;version="2.0.4",
  org.eclipse.sirius.ui.tools.internal.views;x-internal:=true;version="2.0.4",
  org.eclipse.sirius.ui.tools.internal.views.common;x-internal:=true;version="2.0.4",
diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/command/AbstractSWTCallback.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/command/AbstractSWTCallback.java
index 0e039f8..072fe4a 100644
--- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/command/AbstractSWTCallback.java
+++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/command/AbstractSWTCallback.java
@@ -52,8 +52,8 @@
 import org.eclipse.sirius.ui.business.api.dialect.DialectUIManager;
 import org.eclipse.sirius.ui.business.api.resource.LoadEMFResourceRunnableWithProgress;
 import org.eclipse.sirius.ui.tools.api.Messages;
-import org.eclipse.sirius.ui.tools.api.selection.TypedVariableValueDialog;
 import org.eclipse.sirius.ui.tools.api.views.ViewHelper;
+import org.eclipse.sirius.ui.tools.internal.selection.TypedVariableValueDialog;
 import org.eclipse.sirius.viewpoint.DAnalysisSessionEObject;
 import org.eclipse.sirius.viewpoint.DRepresentation;
 import org.eclipse.sirius.viewpoint.DRepresentationElement;
diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/selection/TypedVariableValueDialog.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/selection/TypedVariableValueDialog.java
similarity index 98%
rename from plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/selection/TypedVariableValueDialog.java
rename to plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/selection/TypedVariableValueDialog.java
index 7e9ecbb..1fe40d5 100644
--- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/selection/TypedVariableValueDialog.java
+++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/selection/TypedVariableValueDialog.java
@@ -8,7 +8,7 @@
  * Contributors:
  *    Obeo - initial API and implementation
  *******************************************************************************/
-package org.eclipse.sirius.ui.tools.api.selection;
+package org.eclipse.sirius.ui.tools.internal.selection;
 
 import java.util.ArrayList;
 import java.util.List;