diff --git a/doc/org.eclipse.emf.eef.doc/META-INF/MANIFEST.MF b/doc/org.eclipse.emf.eef.doc/META-INF/MANIFEST.MF
index 250233e..723de64 100644
--- a/doc/org.eclipse.emf.eef.doc/META-INF/MANIFEST.MF
+++ b/doc/org.eclipse.emf.eef.doc/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Documentation
 Bundle-SymbolicName: org.eclipse.emf.eef.doc;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.ui;bundle-version="3.4.0",
  org.eclipse.core.runtime;bundle-version="3.4.0"
diff --git a/doc/org.eclipse.emf.eef.doc/pom.xml b/doc/org.eclipse.emf.eef.doc/pom.xml
index 08eab7d..acdb324 100644
--- a/doc/org.eclipse.emf.eef.doc/pom.xml
+++ b/doc/org.eclipse.emf.eef.doc/pom.xml
@@ -18,7 +18,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.doc</artifactId>
diff --git a/features/org.eclipse.emf.eef.codegen.ecore-feature/feature.xml b/features/org.eclipse.emf.eef.codegen.ecore-feature/feature.xml
index 86e1f42..417253f 100644
--- a/features/org.eclipse.emf.eef.codegen.ecore-feature/feature.xml
+++ b/features/org.eclipse.emf.eef.codegen.ecore-feature/feature.xml
@@ -12,9 +12,11 @@
 <feature
       id="org.eclipse.emf.eef.codegen.ecore-feature"
       label="%featureName"
-      version="1.3.0.qualifier"
+      version="1.4.0.qualifier"
       provider-name="%providerName"
-      plugin="org.eclipse.emf.eef.branding">
+      plugin="org.eclipse.emf.eef.branding"
+      license-feature="org.eclipse.license"
+	  license-feature-version="0.0.0">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.eef.codegen.ecore-feature/pom.xml b/features/org.eclipse.emf.eef.codegen.ecore-feature/pom.xml
index 027f3de..a5518c7 100644
--- a/features/org.eclipse.emf.eef.codegen.ecore-feature/pom.xml
+++ b/features/org.eclipse.emf.eef.codegen.ecore-feature/pom.xml
@@ -18,7 +18,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.codegen.ecore-feature</artifactId>
diff --git a/features/org.eclipse.emf.eef.codegen.richtext-feature/feature.xml b/features/org.eclipse.emf.eef.codegen.richtext-feature/feature.xml
index 090d933..355ebf0 100644
--- a/features/org.eclipse.emf.eef.codegen.richtext-feature/feature.xml
+++ b/features/org.eclipse.emf.eef.codegen.richtext-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.emf.eef.codegen.richtext-feature"
       label="%featureName"
-      version="1.3.0.qualifier"
+      version="1.4.0.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -32,7 +32,7 @@
    </license>
 
    <requires>
-      <import feature="org.eclipse.emf.eef.richtext-feature" version="1.3.0.qualifier"/>
+      <import feature="org.eclipse.emf.eef.richtext-feature" version="1.4.0.qualifier"/>
    </requires>
 
    <plugin
diff --git a/features/org.eclipse.emf.eef.codegen.richtext-feature/pom.xml b/features/org.eclipse.emf.eef.codegen.richtext-feature/pom.xml
index c9d8a7d..9b5e575 100644
--- a/features/org.eclipse.emf.eef.codegen.richtext-feature/pom.xml
+++ b/features/org.eclipse.emf.eef.codegen.richtext-feature/pom.xml
@@ -18,7 +18,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.codegen.richtext-feature</artifactId>
diff --git a/features/org.eclipse.emf.eef.codegen.uml.feature/.gitignore b/features/org.eclipse.emf.eef.codegen.uml.feature/.gitignore
new file mode 100644
index 0000000..eb5a316
--- /dev/null
+++ b/features/org.eclipse.emf.eef.codegen.uml.feature/.gitignore
@@ -0,0 +1 @@
+target
diff --git a/features/org.eclipse.emf.eef.codegen.uml.feature/.project b/features/org.eclipse.emf.eef.codegen.uml.feature/.project
new file mode 100644
index 0000000..556f115
--- /dev/null
+++ b/features/org.eclipse.emf.eef.codegen.uml.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.eef.codegen.uml.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.eef.codegen.uml.feature/build.properties b/features/org.eclipse.emf.eef.codegen.uml.feature/build.properties
new file mode 100644
index 0000000..7aa629d
--- /dev/null
+++ b/features/org.eclipse.emf.eef.codegen.uml.feature/build.properties
@@ -0,0 +1,20 @@
+###############################################################################
+# Copyright (c) 2008, 2012 Obeo.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#     Obeo - initial API and implementation
+###############################################################################
+bin.includes = feature.xml,\
+               feature.properties,\
+               license.html,\
+               license.txt,\
+               epl-v10.html
+src.includes = feature.properties,\
+               license.html,\
+               license.txt,\
+               feature.xml,\
+               epl-v10.html
diff --git a/features/org.eclipse.emf.eef.codegen.uml.feature/epl-v10.html b/features/org.eclipse.emf.eef.codegen.uml.feature/epl-v10.html
new file mode 100755
index 0000000..0d34dd0
--- /dev/null
+++ b/features/org.eclipse.emf.eef.codegen.uml.feature/epl-v10.html
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>&quot;Contribution&quot; means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>&quot;Contributor&quot; means any person or entity that distributes
+the Program.</p>
+
+<p>&quot;Licensed Patents&quot; mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>&quot;Program&quot; means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>&quot;Recipient&quot; means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+(&quot;Commercial Contributor&quot;) hereby agrees to defend and
+indemnify every other Contributor (&quot;Indemnified Contributor&quot;)
+against any losses, damages and costs (collectively &quot;Losses&quot;)
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/features/org.eclipse.emf.eef.codegen.uml.feature/feature.properties b/features/org.eclipse.emf.eef.codegen.uml.feature/feature.properties
new file mode 100644
index 0000000..c2c0016
--- /dev/null
+++ b/features/org.eclipse.emf.eef.codegen.uml.feature/feature.properties
@@ -0,0 +1,147 @@
+###############################################################################
+# Copyright (c) 2008, 2012 Obeo.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#     Obeo - initial API and implementation
+###############################################################################
+providerName=Eclipse Modeling Project
+featureName=Extended Editing Framework - EEF Generation for UML
+modelingUpdateSiteName=Eclipse Modeling Project Updates
+description=Extended Editing Framework - EEF Generation for UML. \
+This plugin contains the necessary acceleo templates and code generate EEF specifically for UML.
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+February 1, 2011\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+       - Content may be structured and packaged into modules to facilitate delivering,\n\
+         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+         plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+         in a directory named "plugins".\n\
+       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+       - The top-level (root) directory\n\
+       - Plug-in and Fragment directories\n\
+       - Inside Plug-ins and Fragments packaged as JARs\n\
+       - Sub-directories of the directory named "src" of certain Plug-ins\n\
+       - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+       - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
+       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.emf.eef.codegen.uml.feature/feature.xml b/features/org.eclipse.emf.eef.codegen.uml.feature/feature.xml
new file mode 100644
index 0000000..17ceb43
--- /dev/null
+++ b/features/org.eclipse.emf.eef.codegen.uml.feature/feature.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright (c) 2011 Obeo.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+   
+    Contributors:
+        Obeo - initial API and implementation
+ -->
+<feature
+      id="org.eclipse.emf.eef.codegen.uml.feature"
+      label="%featureName"
+      version="1.4.0.qualifier"
+      provider-name="%providerName"
+      plugin="org.eclipse.emf.eef.branding"
+      license-feature="org.eclipse.license"
+      license-feature-version="0.0.0">
+
+   <description>
+      %description
+   </description>
+
+   <copyright url="http://www.eclipse.org/legal/epl-v10.html">
+      Copyright (c) 2011 Obeo.
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <url>
+      <update label="%modelingUpdateSiteName" url="http://www.eclipse.org/modeling/updates/"/>
+      <discovery label="%modelingUpdateSiteName" url="http://www.eclipse.org/modeling/updates/"/>
+   </url>
+
+   <plugin
+         id="org.eclipse.emf.eef.codegen.ecore"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emf.eef.branding"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+</feature>
diff --git a/features/org.eclipse.emf.eef.codegen.uml.feature/license.html b/features/org.eclipse.emf.eef.codegen.uml.feature/license.html
new file mode 100644
index 0000000..a1fe5ea
--- /dev/null
+++ b/features/org.eclipse.emf.eef.codegen.uml.feature/license.html
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!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>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+</body>
+</html>
diff --git a/features/org.eclipse.emf.eef.codegen.uml.feature/license.txt b/features/org.eclipse.emf.eef.codegen.uml.feature/license.txt
new file mode 100644
index 0000000..24937b6
--- /dev/null
+++ b/features/org.eclipse.emf.eef.codegen.uml.feature/license.txt
@@ -0,0 +1,87 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
+
diff --git a/features/org.eclipse.emf.eef.codegen.uml.feature/pom.xml b/features/org.eclipse.emf.eef.codegen.uml.feature/pom.xml
new file mode 100644
index 0000000..59cc36f
--- /dev/null
+++ b/features/org.eclipse.emf.eef.codegen.uml.feature/pom.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright (c) 2011 Obeo.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+   
+    Contributors:
+        Obeo - initial creator
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.emf</groupId>
+		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
+		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.emf.eef.codegen.uml.feature</artifactId>
+	<packaging>eclipse-feature</packaging>
+
+	<name>EEF UML Codegen Feature</name>
+
+</project>
diff --git a/features/org.eclipse.emf.eef.collab.runtime-feature/feature.xml b/features/org.eclipse.emf.eef.collab.runtime-feature/feature.xml
index ecacb1c..ee2fb90 100644
--- a/features/org.eclipse.emf.eef.collab.runtime-feature/feature.xml
+++ b/features/org.eclipse.emf.eef.collab.runtime-feature/feature.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
     Copyright (c) 2008, 2010 Obeo.
     All rights reserved. This program and the accompanying materials
@@ -8,40 +8,42 @@
    
     Contributors:
         Obeo - initial API and implementation
- -->
-<feature
-      id="org.eclipse.emf.eef.collab.runtime-feature"
-      label="%featureName"
-      version="1.3.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.emf.eef.branding">
-
-   <description>
-      %description
-   </description>
-
-   <copyright url="http://www.eclipse.org/legal/epl-v10.html">
+ -->
+<feature
+      id="org.eclipse.emf.eef.collab.runtime-feature"
+      label="%featureName"
+      version="1.4.0.qualifier"
+      provider-name="%providerName"
+      plugin="org.eclipse.emf.eef.branding"
+      license-feature="org.eclipse.license"
+      license-feature-version="0.0.0">
+
+   <description>
+      %description
+   </description>
+
+   <copyright url="http://www.eclipse.org/legal/epl-v10.html">
       Copyright (c) 2008 - 2010 Obeo.
 All rights reserved. This program and the accompanying materials
 are made available under the terms of the Eclipse Public License v1.0
 which accompanies this distribution, and is available at
-http://www.eclipse.org/legal/epl-v10.html
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%modelingUpdateSiteName" url="http://www.eclipse.org/modeling/updates/"/>
-      <discovery label="%modelingUpdateSiteName" url="http://www.eclipse.org/modeling/updates/"/>
-   </url>
-
-   <plugin
-         id="org.eclipse.emf.eef.cdo.runtime"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
+http://www.eclipse.org/legal/epl-v10.html
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <url>
+      <update label="%modelingUpdateSiteName" url="http://www.eclipse.org/modeling/updates/"/>
+      <discovery label="%modelingUpdateSiteName" url="http://www.eclipse.org/modeling/updates/"/>
+   </url>
+
+   <plugin
+         id="org.eclipse.emf.eef.cdo.runtime"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.emf.eef.collab.runtime-feature/pom.xml b/features/org.eclipse.emf.eef.collab.runtime-feature/pom.xml
index 2266500..d93cb8b 100644
--- a/features/org.eclipse.emf.eef.collab.runtime-feature/pom.xml
+++ b/features/org.eclipse.emf.eef.collab.runtime-feature/pom.xml
@@ -18,7 +18,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.collab.runtime-feature</artifactId>
diff --git a/features/org.eclipse.emf.eef.edt-feature/feature.xml b/features/org.eclipse.emf.eef.edt-feature/feature.xml
index 580091a..91b562f 100644
--- a/features/org.eclipse.emf.eef.edt-feature/feature.xml
+++ b/features/org.eclipse.emf.eef.edt-feature/feature.xml
@@ -12,9 +12,11 @@
 <feature
       id="org.eclipse.emf.eef.edt-feature"
       label="%featureName"
-      version="1.3.0.qualifier"
+      version="1.4.0.qualifier"
       provider-name="%providerName"
-      plugin="org.eclipse.emf.eef.branding">
+      plugin="org.eclipse.emf.eef.branding"
+      license-feature="org.eclipse.license"
+      license-feature-version="0.0.0">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.eef.edt-feature/pom.xml b/features/org.eclipse.emf.eef.edt-feature/pom.xml
index e832b9d..f336c44 100644
--- a/features/org.eclipse.emf.eef.edt-feature/pom.xml
+++ b/features/org.eclipse.emf.eef.edt-feature/pom.xml
@@ -18,7 +18,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.edt-feature</artifactId>
diff --git a/features/org.eclipse.emf.eef.extended-feature/feature.xml b/features/org.eclipse.emf.eef.extended-feature/feature.xml
index 079c409..4ccd582 100644
--- a/features/org.eclipse.emf.eef.extended-feature/feature.xml
+++ b/features/org.eclipse.emf.eef.extended-feature/feature.xml
@@ -12,9 +12,11 @@
 <feature
       id="org.eclipse.emf.eef.extended-feature"
       label="%featureName"
-      version="1.3.0.qualifier"
+      version="1.4.0.qualifier"
       provider-name="%providerName"
-      plugin="org.eclipse.emf.eef.branding">
+      plugin="org.eclipse.emf.eef.branding"
+      license-feature="org.eclipse.license"
+      license-feature-version="0.0.0">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.eef.extended-feature/pom.xml b/features/org.eclipse.emf.eef.extended-feature/pom.xml
index f49c794..cb53856 100644
--- a/features/org.eclipse.emf.eef.extended-feature/pom.xml
+++ b/features/org.eclipse.emf.eef.extended-feature/pom.xml
@@ -18,7 +18,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.extended-feature</artifactId>
diff --git a/features/org.eclipse.emf.eef.richtext-feature/feature.xml b/features/org.eclipse.emf.eef.richtext-feature/feature.xml
index ecd6d81..ae74c74 100644
--- a/features/org.eclipse.emf.eef.richtext-feature/feature.xml
+++ b/features/org.eclipse.emf.eef.richtext-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.emf.eef.richtext-feature"
       label="%featureName"
-      version="1.3.0.qualifier"
+      version="1.4.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.emf.eef.richtext-feature/pom.xml b/features/org.eclipse.emf.eef.richtext-feature/pom.xml
index 4835a49..ac9e872 100644
--- a/features/org.eclipse.emf.eef.richtext-feature/pom.xml
+++ b/features/org.eclipse.emf.eef.richtext-feature/pom.xml
@@ -18,7 +18,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.richtext-feature</artifactId>
diff --git a/features/org.eclipse.emf.eef.runtime-feature/feature.xml b/features/org.eclipse.emf.eef.runtime-feature/feature.xml
index 99679aa..7aeda8a 100644
--- a/features/org.eclipse.emf.eef.runtime-feature/feature.xml
+++ b/features/org.eclipse.emf.eef.runtime-feature/feature.xml
@@ -12,9 +12,11 @@
 <feature
       id="org.eclipse.emf.eef.runtime-feature"
       label="%featureName"
-      version="1.3.0.qualifier"
+      version="1.4.0.qualifier"
       provider-name="%providerName"
-      plugin="org.eclipse.emf.eef.branding">
+      plugin="org.eclipse.emf.eef.branding"
+      license-feature="org.eclipse.license"
+      license-feature-version="0.0.0">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.eef.runtime-feature/pom.xml b/features/org.eclipse.emf.eef.runtime-feature/pom.xml
index 9f11cbd..fa83f3e 100644
--- a/features/org.eclipse.emf.eef.runtime-feature/pom.xml
+++ b/features/org.eclipse.emf.eef.runtime-feature/pom.xml
@@ -18,7 +18,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.runtime-feature</artifactId>
diff --git a/features/org.eclipse.emf.eef.sdk-feature/feature.xml b/features/org.eclipse.emf.eef.sdk-feature/feature.xml
index e07e48f..e85c2fd 100644
--- a/features/org.eclipse.emf.eef.sdk-feature/feature.xml
+++ b/features/org.eclipse.emf.eef.sdk-feature/feature.xml
@@ -12,9 +12,11 @@
 <feature
       id="org.eclipse.emf.eef.sdk-feature"
       label="%featureName"
-      version="1.3.0.qualifier"
+      version="1.4.0.qualifier"
       provider-name="%providerName"
-      plugin="org.eclipse.emf.eef.branding">
+      plugin="org.eclipse.emf.eef.branding"
+      license-feature="org.eclipse.license"
+      license-feature-version="0.0.0">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.eef.sdk-feature/pom.xml b/features/org.eclipse.emf.eef.sdk-feature/pom.xml
index e655fe9..c51451b 100644
--- a/features/org.eclipse.emf.eef.sdk-feature/pom.xml
+++ b/features/org.eclipse.emf.eef.sdk-feature/pom.xml
@@ -18,7 +18,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.sdk-feature</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.branding/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.branding/META-INF/MANIFEST.MF
index 89e2444..0c43423 100644
--- a/plugins/org.eclipse.emf.eef.branding/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.branding/META-INF/MANIFEST.MF
@@ -2,5 +2,5 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF
 Bundle-SymbolicName: org.eclipse.emf.eef.branding
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.eef.branding/pom.xml b/plugins/org.eclipse.emf.eef.branding/pom.xml
index c1690ea..68db242 100644
--- a/plugins/org.eclipse.emf.eef.branding/pom.xml
+++ b/plugins/org.eclipse.emf.eef.branding/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.branding</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.cdo.runtime/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.cdo.runtime/META-INF/MANIFEST.MF
index 9065df9..ebe9324 100644
--- a/plugins/org.eclipse.emf.eef.cdo.runtime/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.cdo.runtime/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF CDO Runtime Plug-in
 Bundle-SymbolicName: org.eclipse.emf.eef.cdo.runtime;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.eef.cdo.runtime.EEFCDORuntimePlugin
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
- org.eclipse.emf.cdo;bundle-version="[4.0.1,4.1.0)",
- org.eclipse.emf.eef.runtime;bundle-version="1.3.0"
+ org.eclipse.emf.cdo;bundle-version="4.0.0",
+ org.eclipse.emf.eef.runtime
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.eef.cdo.runtime.policies,
diff --git a/plugins/org.eclipse.emf.eef.cdo.runtime/pom.xml b/plugins/org.eclipse.emf.eef.cdo.runtime/pom.xml
index a704c51..e2b422f 100644
--- a/plugins/org.eclipse.emf.eef.cdo.runtime/pom.xml
+++ b/plugins/org.eclipse.emf.eef.cdo.runtime/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.cdo.runtime</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.codegen.ecore/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.codegen.ecore/META-INF/MANIFEST.MF
index 44afd00..75267f0 100644
--- a/plugins/org.eclipse.emf.eef.codegen.ecore/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.codegen.ecore/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Acceleo Ecore Module Runtime Plug-in
 Bundle-SymbolicName: org.eclipse.emf.eef.codegen.ecore;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.eef.codegen.ecore.EMFCodegenPlugin
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
diff --git a/plugins/org.eclipse.emf.eef.codegen.ecore/pom.xml b/plugins/org.eclipse.emf.eef.codegen.ecore/pom.xml
index 750bd14..5e04aa7 100644
--- a/plugins/org.eclipse.emf.eef.codegen.ecore/pom.xml
+++ b/plugins/org.eclipse.emf.eef.codegen.ecore/pom.xml
@@ -17,12 +17,12 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<groupId>org.eclipse.emf</groupId>
 	<artifactId>org.eclipse.emf.eef.codegen.ecore</artifactId>
-	<version>1.3.0-SNAPSHOT</version>
+	<version>1.4.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 	
 	<name>EEF Ecore Codegen Plug-in</name>
diff --git a/plugins/org.eclipse.emf.eef.codegen.extended.widgets.richtext/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.codegen.extended.widgets.richtext/META-INF/MANIFEST.MF
index 3cf0bdf..1bb81d9 100644
--- a/plugins/org.eclipse.emf.eef.codegen.extended.widgets.richtext/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.codegen.extended.widgets.richtext/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Acceleo Extended Module Runtime Plug-in
 Bundle-SymbolicName: org.eclipse.emf.eef.codegen.extended.widgets.richtext;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.eef.codegen.extended.widgets.richtext.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
diff --git a/plugins/org.eclipse.emf.eef.codegen.extended.widgets.richtext/pom.xml b/plugins/org.eclipse.emf.eef.codegen.extended.widgets.richtext/pom.xml
index 5e2b6ba..bdfd0c3 100644
--- a/plugins/org.eclipse.emf.eef.codegen.extended.widgets.richtext/pom.xml
+++ b/plugins/org.eclipse.emf.eef.codegen.extended.widgets.richtext/pom.xml
@@ -17,12 +17,12 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<groupId>org.eclipse.emf</groupId>
 	<artifactId>org.eclipse.emf.eef.codegen.extended.widgets.richtext</artifactId>
-	<version>1.3.0-SNAPSHOT</version>
+	<version>1.4.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 
 	<name>EEF RichText Codegen Plug-in</name>
diff --git a/plugins/org.eclipse.emf.eef.codegen.extended/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.codegen.extended/META-INF/MANIFEST.MF
index 12549d3..1b0b555 100644
--- a/plugins/org.eclipse.emf.eef.codegen.extended/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.codegen.extended/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Acceleo Extended Module Runtime Plug-in
 Bundle-SymbolicName: org.eclipse.emf.eef.codegen.extended;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.eef.codegen.extended.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
diff --git a/plugins/org.eclipse.emf.eef.codegen.extended/build.acceleo b/plugins/org.eclipse.emf.eef.codegen.extended/build.acceleo
index 4bd7efd..ab52fd3 100644
--- a/plugins/org.eclipse.emf.eef.codegen.extended/build.acceleo
+++ b/plugins/org.eclipse.emf.eef.codegen.extended/build.acceleo
@@ -18,7 +18,7 @@
         <acceleoCompiler 
             sourceFolder="${target.folder}"
             outputFolder="${target.folder}"
-            dependencies="${target.folder}/../../org.eclipse.emf.eef.eefgen;${target.folder}/../../org.eclipse.emf.eef.components;${target.folder}/../../org.eclipse.emf.eef.mapping;${target.folder}/../../org.eclipse.emf.eef.views;${target.folder}/../../org.eclipse.emf.eef.runtime;${target.folder}/../../org.eclipse.emf.eef.editor.model;${target.folder}/../../org.eclipse.emf.eef.components.edit;${target.folder}/../../org.eclipse.emf.eef.mapping.edit;${target.folder}/../../org.eclipse.emf.eef.views.edit;${target.folder}/../../org.eclipse.emf.eef.runtime.extended;"
+            dependencies="${target.folder}/../../org.eclipse.emf.eef.eefgen;${target.folder}/../../org.eclipse.emf.eef.components;${target.folder}/../../org.eclipse.emf.eef.mapping;${target.folder}/../../org.eclipse.emf.eef.views;${target.folder}/../../org.eclipse.emf.eef.codegen;${target.folder}/../../org.eclipse.emf.eef.views.edit;${target.folder}/../../org.eclipse.emf.eef.runtime;${target.folder}/../../org.eclipse.emf.eef.components.edit;${target.folder}/../../org.eclipse.emf.eef.mapping.edit;${target.folder}/../../org.eclipse.emf.eef.codegen.launcher;${target.folder}/../../org.eclipse.emf.eef.codegen.ecore;${target.folder}/../../org.eclipse.emf.eef.editor.model;${target.folder}/../../org.eclipse.emf.eef.runtime.extended;"
             binaryResource="false"
             packagesToRegister="">
         </acceleoCompiler>
diff --git a/plugins/org.eclipse.emf.eef.codegen.extended/pom.xml b/plugins/org.eclipse.emf.eef.codegen.extended/pom.xml
index 3326084..ce8f060 100644
--- a/plugins/org.eclipse.emf.eef.codegen.extended/pom.xml
+++ b/plugins/org.eclipse.emf.eef.codegen.extended/pom.xml
@@ -17,12 +17,12 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<groupId>org.eclipse.emf</groupId>
 	<artifactId>org.eclipse.emf.eef.codegen.extended</artifactId>
-	<version>1.3.0-SNAPSHOT</version>
+	<version>1.4.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 
 	<name>EEF Extended Codegen Plug-in</name>
diff --git a/plugins/org.eclipse.emf.eef.codegen.launcher/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.codegen.launcher/META-INF/MANIFEST.MF
index 46aa7e4..4197932 100644
--- a/plugins/org.eclipse.emf.eef.codegen.launcher/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.codegen.launcher/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Codegen Launcher
 Bundle-SymbolicName: org.eclipse.emf.eef.codegen.launcher
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.eef.codegen.launcher.EEFCodegenLauncher
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.ui,
diff --git a/plugins/org.eclipse.emf.eef.codegen.launcher/pom.xml b/plugins/org.eclipse.emf.eef.codegen.launcher/pom.xml
index 0b4a042..d7b929a 100644
--- a/plugins/org.eclipse.emf.eef.codegen.launcher/pom.xml
+++ b/plugins/org.eclipse.emf.eef.codegen.launcher/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.codegen.launcher</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.codegen.tests/build.acceleo b/plugins/org.eclipse.emf.eef.codegen.tests/build.acceleo
index ec5a005..ebb8cd8 100644
--- a/plugins/org.eclipse.emf.eef.codegen.tests/build.acceleo
+++ b/plugins/org.eclipse.emf.eef.codegen.tests/build.acceleo
@@ -18,7 +18,7 @@
         <acceleoCompiler 
             sourceFolder="${target.folder}"
             outputFolder="${target.folder}"
-            dependencies="${target.folder}/../../org.eclipse.emf.eef.codegen;${target.folder}/../../org.eclipse.emf.eef.codegen.launcher;${target.folder}/../../org.eclipse.emf.eef.codegen.ecore;${target.folder}/../../org.eclipse.emf.eef.runtime;"
+            dependencies="${target.folder}/../../org.eclipse.emf.eef.eefgen;${target.folder}/../../org.eclipse.emf.eef.components;${target.folder}/../../org.eclipse.emf.eef.mapping;${target.folder}/../../org.eclipse.emf.eef.views;${target.folder}/../../org.eclipse.emf.eef.codegen;${target.folder}/../../org.eclipse.emf.eef.views.edit;${target.folder}/../../org.eclipse.emf.eef.runtime;${target.folder}/../../org.eclipse.emf.eef.components.edit;${target.folder}/../../org.eclipse.emf.eef.mapping.edit;${target.folder}/../../org.eclipse.emf.eef.codegen.launcher;${target.folder}/../../org.eclipse.emf.eef.codegen.ecore;"
             binaryResource="false"
             packagesToRegister="">
         </acceleoCompiler>
diff --git a/plugins/org.eclipse.emf.eef.codegen/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.codegen/META-INF/MANIFEST.MF
index e3710b5..0552b39 100644
--- a/plugins/org.eclipse.emf.eef.codegen/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.codegen/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Standard Acceleo generator
 Bundle-SymbolicName: org.eclipse.emf.eef.codegen;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.eef.codegen.EEFCodegenPlugin
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.ui;bundle-version="3.4.0",
diff --git a/plugins/org.eclipse.emf.eef.codegen/pom.xml b/plugins/org.eclipse.emf.eef.codegen/pom.xml
index aa6ba97..f27eb0d 100644
--- a/plugins/org.eclipse.emf.eef.codegen/pom.xml
+++ b/plugins/org.eclipse.emf.eef.codegen/pom.xml
@@ -17,12 +17,12 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<groupId>org.eclipse.emf</groupId>
 	<artifactId>org.eclipse.emf.eef.codegen</artifactId>
-	<version>1.3.0-SNAPSHOT</version>
+	<version>1.4.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 
 	<name>EEF Codegen Plug-in</name>
diff --git a/plugins/org.eclipse.emf.eef.codegen/src/org/eclipse/emf/eef/codegen/widgets/impl/referencetable/referencetableGettersSetters.mtl b/plugins/org.eclipse.emf.eef.codegen/src/org/eclipse/emf/eef/codegen/widgets/impl/referencetable/referencetableGettersSetters.mtl
index 560cd12..a89f1ca 100644
--- a/plugins/org.eclipse.emf.eef.codegen/src/org/eclipse/emf/eef/codegen/widgets/impl/referencetable/referencetableGettersSetters.mtl
+++ b/plugins/org.eclipse.emf.eef.codegen/src/org/eclipse/emf/eef/codegen/widgets/impl/referencetable/referencetableGettersSetters.mtl
@@ -114,6 +114,8 @@
 		[include('org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableContentProvider')/] contentProvider = new ReferencesTableContentProvider();
 		[elementEditor.elementEditorName()/].setContentProvider(contentProvider);
 		[elementEditor.elementEditorName()/].setInput(settings);
+		[elementEditor.elementEditorName()/]BusinessFilters.clear();
+		[elementEditor.elementEditorName()/]Filters.clear();
 		[elementEditor.readOnly()/]
 	}
 [/template]
diff --git a/plugins/org.eclipse.emf.eef.codegen/src/org/eclipse/emf/eef/codegen/widgets/impl/tablecomposition/tablecompositionControl.mtl b/plugins/org.eclipse.emf.eef.codegen/src/org/eclipse/emf/eef/codegen/widgets/impl/tablecomposition/tablecompositionControl.mtl
index f172b08..629887d 100644
--- a/plugins/org.eclipse.emf.eef.codegen/src/org/eclipse/emf/eef/codegen/widgets/impl/tablecomposition/tablecompositionControl.mtl
+++ b/plugins/org.eclipse.emf.eef.codegen/src/org/eclipse/emf/eef/codegen/widgets/impl/tablecomposition/tablecompositionControl.mtl
@@ -55,6 +55,73 @@
 [editionElement.genericFilterUpdater(view, pec)/]
 [/template]
 
+[comment ===== Case : model = Containment(1) - view = TableComposition or AdvancedTableComposition===== /]
+[query public validCaseForSingleContainment(editionElement : PropertiesEditionElement) : Boolean = 
+	(not editionElement.hasModelNavigation())
+	and editionElement.model.isContainmentSingle() 
+	and (editionElement.representationName('TableComposition') or editionElement.representationName('AdvancedTableComposition')) /]
+
+[template public additionalComponentField(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) overrides additionalComponentField ? (editionElement.validCaseForSingleContainment())]
+
+/**
+ * Settings for [editionElement.name/] ReferencesTable
+ */
+protected [include('org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableSettings')/] [editionElement.name.toJavaIdentifier()/]Settings;
+
+[/template]
+
+[template public declareEObjectUpdater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) overrides declareEObjectUpdater ? (editionElement.validCaseForSingleContainment())]
+if (event.getKind() == [include('org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent')/].ADD) {
+	[if (editionElement.model.eType.oclIsTypeOf(EClass))]
+	[include('org.eclipse.emf.eef.runtime.context.impl.EReferencePropertiesEditionContext')/] context = new EReferencePropertiesEditionContext(editingContext, this, [editionElement.name.toJavaIdentifier()/]Settings, editingContext.getAdapterFactory());
+		[if (editionElement.hasStrictTypingFilter())]
+			[for (eClassifier : EClassifier | editionElement.strictTypingFiltersTypes())]
+	context.addInstanciableTypeFilter(new [include('org.eclipse.emf.eef.runtime.context.impl.EReferencePropertiesEditionContext.InstanciableTypeFilter')/]() {
+		public boolean select([include('org.eclipse.emf.ecore.EClass')/] instanciableType) {
+			return [eClassifier.metamodelStrictFilterGetter()/][addImport(eClassifier.ePackage.qualifiedMetamodelPackage())/] == instanciableType;
+		}
+	});
+			[/for]
+		[/if]
+	[include('org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider')/] provider = (PropertiesEditingProvider)editingContext.getAdapterFactory().adapt(semanticObject, PropertiesEditingProvider.class);
+	if (provider != null) {
+		[include('org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy')/] policy = provider.getPolicy(context);
+		if (policy instanceof [include('org.eclipse.emf.eef.runtime.policies.impl.CreateEditingPolicy')/]) {
+			policy.execute();
+		}
+	}
+	[/if]
+} else if (event.getKind() == PropertiesEditionEvent.EDIT) {
+	[include('org.eclipse.emf.eef.runtime.context.impl.EObjectPropertiesEditionContext')/] context = new EObjectPropertiesEditionContext(editingContext, this, (EObject) event.getNewValue(), editingContext.getAdapterFactory());
+	[include('org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider')/] provider = (PropertiesEditingProvider)editingContext.getAdapterFactory().adapt((EObject) event.getNewValue(), PropertiesEditingProvider.class);
+	if (provider != null) {
+		[include('org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy')/] editionPolicy = provider.getPolicy(context);
+		if (editionPolicy != null) {
+			editionPolicy.execute();
+		}
+	}
+} else if (event.getKind() == PropertiesEditionEvent.REMOVE) {
+	[editionElement.name.toJavaIdentifier()/]Settings.removeFromReference((EObject) event.getNewValue());
+}
+[/template]
+
+
+[template public liveUpdater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) overrides liveUpdater ? (editionElement.validCaseForSingleContainment())]
+if ([editionElement.metamodelGetter()/].equals(msg.getFeature()) && isAccessible([editionElement.views->first().editorID()/]))
+	[view.viewIdentifier(pec)/].update[editionElement.views->first().viewPackageSignature()/]();
+[/template]
+
+[template public updater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) overrides updater ? (editionElement.validCaseForSingleContainment())]
+if (isAccessible([editionElement.views->first().editorID()/])) {
+	[editionElement.name.toJavaIdentifier()/]Settings = new ReferencesTableSettings([pec.pecModelClass().toJavaIdentifier()/], [editionElement.metamodelGetter()/]);
+	[view.viewIdentifier(pec)/].init[editionElement.views->first().viewPackageSignature()/]([editionElement.name.toJavaIdentifier()/]Settings);
+}
+[/template]
+
+[template public filterUpdater(editionElement : PropertiesEditionElement, view : View, pec : PropertiesEditionComponent) overrides filterUpdater ? (editionElement.validCaseForSingleContainment())]
+[editionElement.genericFilterUpdater(view, pec)/]
+[/template]
+
 [comment ===== Case : model = Containment(*) in Simple Navigation - view = TableComposition or AdvancedTableComposition===== /]
 [query public validCaseForMultipleModelReference(editionElement : PropertiesEditionElement) : Boolean = 
 	editionElement.hasModelNavigation() 
diff --git a/plugins/org.eclipse.emf.eef.components.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.components.edit/META-INF/MANIFEST.MF
index fecb57a..f909b63 100644
--- a/plugins/org.eclipse.emf.eef.components.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.components.edit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Components Edit Support
 Bundle-SymbolicName: org.eclipse.emf.eef.components.edit;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.components.provider.ComponentsEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.eef.components.edit/pom.xml b/plugins/org.eclipse.emf.eef.components.edit/pom.xml
index 46b9c27..9709d83 100644
--- a/plugins/org.eclipse.emf.eef.components.edit/pom.xml
+++ b/plugins/org.eclipse.emf.eef.components.edit/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.components.edit</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.components.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.components.editor/META-INF/MANIFEST.MF
index 074e392..f416c9d 100644
--- a/plugins/org.eclipse.emf.eef.components.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.components.editor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Components Editor
 Bundle-SymbolicName: org.eclipse.emf.eef.components.editor;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.components.presentation.ComponentsEditorPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.eef.components.editor/pom.xml b/plugins/org.eclipse.emf.eef.components.editor/pom.xml
index 1845134..03abd35 100644
--- a/plugins/org.eclipse.emf.eef.components.editor/pom.xml
+++ b/plugins/org.eclipse.emf.eef.components.editor/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.components.editor</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.components/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.components/META-INF/MANIFEST.MF
index 99c8fb2..bf061d0 100644
--- a/plugins/org.eclipse.emf.eef.components/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.components/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Components Model
 Bundle-SymbolicName: org.eclipse.emf.eef.components;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.emf.eef.components/pom.xml b/plugins/org.eclipse.emf.eef.components/pom.xml
index 86fb3a9..bd84769 100644
--- a/plugins/org.eclipse.emf.eef.components/pom.xml
+++ b/plugins/org.eclipse.emf.eef.components/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.components</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.editor.model/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.editor.model/META-INF/MANIFEST.MF
index de1745a..b2f1d13 100644
--- a/plugins/org.eclipse.emf.eef.editor.model/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.editor.model/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Editor Model
 Bundle-SymbolicName: org.eclipse.emf.eef.editor.model;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.extended.editor.provider.ExtendedEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.eef.editor.model/pom.xml b/plugins/org.eclipse.emf.eef.editor.model/pom.xml
index 99c111d..ee138e7 100644
--- a/plugins/org.eclipse.emf.eef.editor.model/pom.xml
+++ b/plugins/org.eclipse.emf.eef.editor.model/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.editor.model</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.eefgen.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.eefgen.edit/META-INF/MANIFEST.MF
index b010dc4..4f0d100 100644
--- a/plugins/org.eclipse.emf.eef.eefgen.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.eefgen.edit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEFGen Edit Support
 Bundle-SymbolicName: org.eclipse.emf.eef.eefgen.edit;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.EEFGen.provider.EEFGenEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.eef.eefgen.edit/pom.xml b/plugins/org.eclipse.emf.eef.eefgen.edit/pom.xml
index 2b318ce..0a21b48 100644
--- a/plugins/org.eclipse.emf.eef.eefgen.edit/pom.xml
+++ b/plugins/org.eclipse.emf.eef.eefgen.edit/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.eefgen.edit</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.eefgen.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.eefgen.editor/META-INF/MANIFEST.MF
index e5c0f45..5154d7f 100644
--- a/plugins/org.eclipse.emf.eef.eefgen.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.eefgen.editor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Generation Editor
 Bundle-SymbolicName: org.eclipse.emf.eef.eefgen.editor;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.EEFGen.presentation.EEFGenEditorPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.eef.eefgen.editor/pom.xml b/plugins/org.eclipse.emf.eef.eefgen.editor/pom.xml
index a236892..760e4f3 100644
--- a/plugins/org.eclipse.emf.eef.eefgen.editor/pom.xml
+++ b/plugins/org.eclipse.emf.eef.eefgen.editor/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.eefgen.editor</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.eefgen/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.eefgen/META-INF/MANIFEST.MF
index 03c2cac..743474b 100644
--- a/plugins/org.eclipse.emf.eef.eefgen/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.eefgen/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEFGen Model
 Bundle-SymbolicName: org.eclipse.emf.eef.eefgen;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.emf.eef.eefgen/pom.xml b/plugins/org.eclipse.emf.eef.eefgen/pom.xml
index 2dba094..bd735fc 100644
--- a/plugins/org.eclipse.emf.eef.eefgen/pom.xml
+++ b/plugins/org.eclipse.emf.eef.eefgen/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.eefgen</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.extended.widgets.richtext/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.extended.widgets.richtext/META-INF/MANIFEST.MF
index 177cabf..38f0c55 100644
--- a/plugins/org.eclipse.emf.eef.extended.widgets.richtext/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.extended.widgets.richtext/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Richtext widget
 Bundle-SymbolicName: org.eclipse.emf.eef.extended.widgets.richtext
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.epf.common;bundle-version="1.5.0";resolution:=optional,
diff --git a/plugins/org.eclipse.emf.eef.extended.widgets.richtext/pom.xml b/plugins/org.eclipse.emf.eef.extended.widgets.richtext/pom.xml
index 3484a87..9cb75a6 100644
--- a/plugins/org.eclipse.emf.eef.extended.widgets.richtext/pom.xml
+++ b/plugins/org.eclipse.emf.eef.extended.widgets.richtext/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.extended.widgets.richtext</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.mapping.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.mapping.edit/META-INF/MANIFEST.MF
index 95aa278..3c62afc 100644
--- a/plugins/org.eclipse.emf.eef.mapping.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.mapping.edit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Mapping Edit Support
 Bundle-SymbolicName: org.eclipse.emf.eef.mapping.edit;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.mapping.provider.MappingEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.eef.mapping.edit/pom.xml b/plugins/org.eclipse.emf.eef.mapping.edit/pom.xml
index b060aff..9adbe26 100644
--- a/plugins/org.eclipse.emf.eef.mapping.edit/pom.xml
+++ b/plugins/org.eclipse.emf.eef.mapping.edit/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.mapping.edit</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.mapping/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.mapping/META-INF/MANIFEST.MF
index a684ad6..4dd5d22 100644
--- a/plugins/org.eclipse.emf.eef.mapping/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.mapping/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Mapping Model
 Bundle-SymbolicName: org.eclipse.emf.eef.mapping;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.emf.eef.mapping/pom.xml b/plugins/org.eclipse.emf.eef.mapping/pom.xml
index 1f03e84..29fe88f 100644
--- a/plugins/org.eclipse.emf.eef.mapping/pom.xml
+++ b/plugins/org.eclipse.emf.eef.mapping/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.mapping</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.modelingbot.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.modelingbot.edit/META-INF/MANIFEST.MF
index 03f3461..c5a084e 100644
--- a/plugins/org.eclipse.emf.eef.modelingbot.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.modelingbot.edit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.eef.modelingbot.edit;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.modelingBot.provider.MbotEditPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.emf.eef.modelingbot.edit/pom.xml b/plugins/org.eclipse.emf.eef.modelingbot.edit/pom.xml
index 6eccb57..a46898b 100644
--- a/plugins/org.eclipse.emf.eef.modelingbot.edit/pom.xml
+++ b/plugins/org.eclipse.emf.eef.modelingbot.edit/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.modelingbot.edit</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.modelingbot.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.modelingbot.editor/META-INF/MANIFEST.MF
index 09fe7aa..63de91e 100644
--- a/plugins/org.eclipse.emf.eef.modelingbot.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.modelingbot.editor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.eef.modelingbot.editor;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.modelingBot.presentation.MbotEditorPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.emf.eef.modelingbot.editor/pom.xml b/plugins/org.eclipse.emf.eef.modelingbot.editor/pom.xml
index c904cbb..3b9b1eb 100644
--- a/plugins/org.eclipse.emf.eef.modelingbot.editor/pom.xml
+++ b/plugins/org.eclipse.emf.eef.modelingbot.editor/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.modelingbot.editor</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.modelingbot/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.modelingbot/META-INF/MANIFEST.MF
index 8b0ce37..6a316be 100644
--- a/plugins/org.eclipse.emf.eef.modelingbot/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.modelingbot/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.eef.modelingbot;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.emf.eef.modelingbot/pom.xml b/plugins/org.eclipse.emf.eef.modelingbot/pom.xml
index 7421220..175c99d 100644
--- a/plugins/org.eclipse.emf.eef.modelingbot/pom.xml
+++ b/plugins/org.eclipse.emf.eef.modelingbot/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.modelingbot</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.modelingbot/src/org/eclipse/emf/eef/modelingBot/swtbot/SWTEEFBot.java b/plugins/org.eclipse.emf.eef.modelingbot/src/org/eclipse/emf/eef/modelingBot/swtbot/SWTEEFBot.java
index 7e9b7fa..5018470 100644
--- a/plugins/org.eclipse.emf.eef.modelingbot/src/org/eclipse/emf/eef/modelingBot/swtbot/SWTEEFBot.java
+++ b/plugins/org.eclipse.emf.eef.modelingbot/src/org/eclipse/emf/eef/modelingBot/swtbot/SWTEEFBot.java
@@ -514,6 +514,14 @@
 						}
 					}
 				}
+			if (view.getName() != null) {
+				String tabToSearch = view.getName();
+				if (view.getName().equals(((PropertiesEditionComponent)propertiesEditionElement.eContainer()).getName())) {
+					tabToSearch = "Base";
+				}
+				SWTBotCTabItem cTabItem = cTabItem(tabToSearch);
+				cTabItem.activate();
+				cTabItem.setFocus();
 			}
 		}
 	}
diff --git a/plugins/org.eclipse.emf.eef.runtime.extended/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.runtime.extended/META-INF/MANIFEST.MF
index 0f1e71a..1f7584c 100644
--- a/plugins/org.eclipse.emf.eef.runtime.extended/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.runtime.extended/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Extended Runtime
 Bundle-SymbolicName: org.eclipse.emf.eef.runtime.extended;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.emf.eef.runtime.extended/pom.xml b/plugins/org.eclipse.emf.eef.runtime.extended/pom.xml
index d6f6c34..8083b6c 100644
--- a/plugins/org.eclipse.emf.eef.runtime.extended/pom.xml
+++ b/plugins/org.eclipse.emf.eef.runtime.extended/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.runtime.extended</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.runtime/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.runtime/META-INF/MANIFEST.MF
index 744723a..b42cbca 100644
--- a/plugins/org.eclipse.emf.eef.runtime/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.runtime/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Runtime Plug-in
 Bundle-SymbolicName: org.eclipse.emf.eef.runtime;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.eef.runtime.EEFRuntimePlugin
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.ui;bundle-version="3.3.0",
diff --git a/plugins/org.eclipse.emf.eef.runtime/pom.xml b/plugins/org.eclipse.emf.eef.runtime/pom.xml
index 9e0d291..07c6533 100644
--- a/plugins/org.eclipse.emf.eef.runtime/pom.xml
+++ b/plugins/org.eclipse.emf.eef.runtime/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.runtime</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/api/notify/ResourceSetAdapter.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/api/notify/ResourceSetAdapter.java
index d6454e8..69bc12a 100644
--- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/api/notify/ResourceSetAdapter.java
+++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/api/notify/ResourceSetAdapter.java
@@ -53,6 +53,11 @@
 		eStructuralFeatureListeners = new HashMap<EStructuralFeature, List<PropertiesEditingSemanticListener>>();
 	}
 
+	@Override
+	public boolean isAdapterForType(Object type) {
+		return type == ResourceSetAdapter.class || ResourceSetAdapter.class.getName().equals(type);
+	}
+
 	/**
 	 * Activates the resource set adapter.
 	 */
@@ -132,10 +137,21 @@
 	 *            the listener to remove
 	 */
 	public void removeEditingSemanticListener(PropertiesEditingSemanticListener listener) {
+		unregisterEditingSemanticListener(listener);
+
+		// if there are no listeners left we remove the adapter
+		if (eClassifierListeners.size() + eStructuralFeatureListeners.size() == 0)
+			deactivate();
+	}
+
+	/**
+	 * Unregisters the given listener
+	 * @param listener {@link PropertiesEditingSemanticListener} to unregister.
+	 */
+	public void unregisterEditingSemanticListener(PropertiesEditingSemanticListener listener) {
 		for (NotificationFilter filter : listener.getFilters()) {
 			if (filter instanceof EStructuralFeatureNotificationFilter) {
-				for (EStructuralFeature feature : ((EStructuralFeatureNotificationFilter)filter)
-						.getFeatures()) {
+				for (EStructuralFeature feature : ((EStructuralFeatureNotificationFilter)filter).getFeatures()) {
 					removeEditingSemanticListener(feature, listener);
 				}
 			} else if (filter instanceof EClassifierNotificationFilter) {
@@ -144,10 +160,6 @@
 				}
 			}
 		}
-
-		// if there are no listeners left we remove the adapter
-		if (eClassifierListeners.size() + eStructuralFeatureListeners.size() == 0)
-			deactivate();
 	}
 	/**
 	 * Removes the given listener from the registered listeners.
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/impl/components/SinglePartPropertiesEditingComponent.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/impl/components/SinglePartPropertiesEditingComponent.java
index 64e0fb5..f1596d8 100644
--- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/impl/components/SinglePartPropertiesEditingComponent.java
+++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/impl/components/SinglePartPropertiesEditingComponent.java
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.runtime.impl.components;
 
+import java.util.Collection;
+
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.ecore.EObject;
@@ -147,8 +149,18 @@
 		} else {
 			if (event instanceof PropertiesEditionEvent && (!(event.getKind() == PropertiesEditionEvent.EDIT)) && associatedFeature(event.getAffectedEditor()) != null) {
 				Object currentValue = semanticObject.eGet(associatedFeature(event.getAffectedEditor()));
-				return (currentValue == null && (event.getNewValue() != null || event.getKind() == PropertiesEditionEvent.ADD))
-						|| (currentValue != null && !currentValue.equals(event.getNewValue()));
+				if (currentValue == null) {
+					return event.getNewValue() != null || event.getKind() == PropertiesEditionEvent.ADD;
+				} else {
+					if (event.getKind() == PropertiesEditionEvent.REMOVE) {
+						return (
+									((currentValue instanceof Collection<?>) && ((Collection<?>)currentValue).contains(event.getNewValue()))
+								 || currentValue.equals(event.getNewValue())
+								);
+					} else {
+						return (currentValue != null && !currentValue.equals(event.getNewValue())); 
+					}	
+				}
 			}
 		}
 		return super.shouldProcess(event);
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/utils/eefRuntimeUImessages.properties b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/utils/eefRuntimeUImessages.properties
index 4f6c227..7c1976d 100644
--- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/utils/eefRuntimeUImessages.properties
+++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/utils/eefRuntimeUImessages.properties
@@ -33,7 +33,7 @@
 EMFModelViewerDialog_single_element_title=Select an element
 EMFModelViewerDialog_type_column_title=Type
 EObjectFlatComboViewer_add_button=...
-LinkEReferenceViewer_add_tooltip=Add the reference value
+LinkEReferenceViewer_add_tooltip=Add a new element
 FlatReferencesTable_featureEditor_title=Edit Feature
 FlatReferencesTable_nothing_to_do=Nothing to do for the moment ...
 ModelChooserDialog_choose_model=Choose a data model :
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/AbstractAdvancedEObjectFlatComboViewer.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/AbstractAdvancedEObjectFlatComboViewer.java
index 4fd07ba..50f94d8 100644
--- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/AbstractAdvancedEObjectFlatComboViewer.java
+++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/AbstractAdvancedEObjectFlatComboViewer.java
@@ -117,6 +117,9 @@
 		this.callback = callback;
 		this.labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
 		this.filters = new ArrayList<ViewerFilter>();
+		if (filter != null) {
+			this.filters.add(filter);
+		}
 		this.brFilters = new ArrayList<ViewerFilter>();
 		this.adapterFactory = adapterFactory;
 	}
@@ -157,8 +160,7 @@
 		removeButton.setLayoutData(data);
 		removeButton
 				.setToolTipText(EEFRuntimeUIMessages.AdvancedEObjectFlatComboViewer_remove_tooltip);
-		EditingUtils.setEEFtype(removeButton,
-				"eef::AdvancedEObjectFlatComboViewer::removebutton");
+		EditingUtils.setEEFtype(removeButton, "eef::AdvancedEObjectFlatComboViewer::removebutton");
 
 		this.browseButton = createButton(parent, "", SWT.PUSH); //$NON-NLS-1$
 		browseButton.setImage(addImage);
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/LinkEObjectFlatComboViewer.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/LinkEObjectFlatComboViewer.java
index 8146636..6acdbea 100644
--- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/LinkEObjectFlatComboViewer.java
+++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/LinkEObjectFlatComboViewer.java
@@ -61,8 +61,8 @@
 		FormData data = new FormData();
 		data.left = new FormAttachment(0, 0);
 		data.right = new FormAttachment(browseButton, 0);
-		data.top = new FormAttachment(0, 1);
-		valueLink.setLayoutData(data);
+		data.top = new FormAttachment(0, 4);
+		valueLink.setLayoutData(data); 
 		valueLink.addSelectionListener(new SelectionAdapter() {
 			/** (non-Javadoc)
 			 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/LinkEReferenceViewer.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/LinkEReferenceViewer.java
index 18bd442..ae41313 100644
--- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/LinkEReferenceViewer.java
+++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/LinkEReferenceViewer.java
@@ -27,7 +27,6 @@
 /**
  * LinkEObjectFlatComboViewer with possibility to create the referenced element.
  * 
- * @author <a href="mailto:nathalie.lepine@obeo.fr">Nathalie Lepine</a>
  */
 public class LinkEReferenceViewer extends LinkEObjectFlatComboViewer {
 	
@@ -72,8 +71,9 @@
 	 * Add the create button
 	 */
 	protected void createButton() {
+		browseButton.setImage(createImage);
 		createButton = super.createButton(composite, "", SWT.PUSH); //$NON-NLS-1$
-		createButton.setImage(createImage);
+		createButton.setImage(addImage);
 		FormData data = new FormData();
 		data.right = new FormAttachment(browseButton, 2);
 		data.top = new FormAttachment(0, -2);
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/wizards/PropertiesEditionWizard.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/wizards/PropertiesEditionWizard.java
index 5a9ce18..d44c67b 100644
--- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/wizards/PropertiesEditionWizard.java
+++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/wizards/PropertiesEditionWizard.java
@@ -12,16 +12,23 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.LinkedHashSet;
 import java.util.List;
 
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.command.CommandParameter;
 import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.eef.runtime.EEFRuntimePlugin;
 import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
 import org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent;
@@ -235,6 +242,7 @@
 					if (((EReferencePropertiesEditionContext)editingContext).getSettings() != null) {
 						EEFUtils.putToReference(((EReferencePropertiesEditionContext)editingContext).getSettings(), create);
 					}
+					this.setWindowTitle(eObject.eClass().getName());
 				}
 			} else {
 				elementCreationPage = new ElementCreationWizardPage();
@@ -284,6 +292,72 @@
 		}
 		return filteredInstanciableTypesInHierarchy;
 	}
+
+	public Collection<EClass> listOfInstanciableType(AdapterFactory adapterFactory, EObject editedObject, EReference eReference) {
+		Collection<EClass> result = new LinkedHashSet<EClass>();
+		if (adapterFactory != null) {
+			IEditingDomainItemProvider adapt = (IEditingDomainItemProvider) adapterFactory.adapt(editedObject, IEditingDomainItemProvider.class);
+			Collection<?> newChildDescriptors = adapt.getNewChildDescriptors(editedObject, null, null);
+			for (Object object : newChildDescriptors) {
+				if (object instanceof CommandParameter) {
+					CommandParameter commandParameter = (CommandParameter) object;
+					if (equals((EStructuralFeature)commandParameter.feature, eReference) && commandParameter.value instanceof EObject) {
+						result.add(((EObject) commandParameter.value).eClass());
+					}
+				}
+			}
+		} else {
+			EClass eReferenceType = eReference.getEReferenceType();
+			EObject container = eReferenceType;
+			while (container.eContainer() != null) {
+				container = container.eContainer();
+			}
+			TreeIterator<EObject> eAllContents = container.eAllContents();
+			while (eAllContents.hasNext()) {
+				EObject next = eAllContents.next();
+				if (next instanceof EClass) {
+					EClass eClass = (EClass) next;
+					if (!(eClass.isAbstract()) && eReferenceType.isSuperTypeOf(eClass)) {
+						result.add(eClass);
+					}
+				}
+			}
+		}
+		return result;
+	}
+	
+	public boolean equals(final EClass eClass1, final EClass eClass2) {
+		if (eClass1.equals(eClass2)) {
+			return true;
+		}
+		if (eClass1.eResource().getURI().isPlatform() && !eClass2.eResource().getURI().isPlatform()) {
+			EPackage ePackage = EPackage.Registry.INSTANCE.getEPackage(eClass1.getEPackage().getNsURI());
+			if (ePackage != null) {
+				EClassifier mappedEClass1 = ePackage.getEClassifier(eClass1.getName());
+				if (eClass2.equals(mappedEClass1)) {
+					return true;
+				}
+			}
+		}
+		if (!eClass1.eResource().getURI().isPlatform() && eClass2.eResource().getURI().isPlatform()) {
+			EPackage ePackage = EPackage.Registry.INSTANCE.getEPackage(eClass2.getEPackage().getNsURI());
+			if (ePackage != null) {
+				EClassifier mappedEClass2 = ePackage.getEClassifier(eClass2.getName());
+				if (eClass1.equals(mappedEClass2)) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * @see org.eclipse.emf.eef.runtime.util.EMFService#equals(org.eclipse.emf.ecore.EStructuralFeature, org.eclipse.emf.ecore.EStructuralFeature)
+	 */
+	public boolean equals(EStructuralFeature esf1, EStructuralFeature esf2) {
+		return equals(esf1.eClass(), esf2.eClass()) && esf1.getName().equals(esf2.getName());
+	}
 	
 	protected List<EClass> getInstanciableTypesInHierarchy() {
 		List<EClass> instanciableTypesInHierarchy;
@@ -292,8 +366,8 @@
 					((DomainPropertiesEditionContext)editingContext).getEditingDomain());
 			editingContext = null;
 		} else {
-			instanciableTypesInHierarchy = EEFUtils.instanciableTypesInHierarchy(eReference.getEType(),
-					editingContext.getResourceSet());
+			Collection<EClass> listOfInstanciableType = listOfInstanciableType(editingContext.getAdapterFactory(), editingContext.getEObject(), eReference);
+			instanciableTypesInHierarchy = new ArrayList<EClass>(listOfInstanciableType);
 		}
 		return instanciableTypesInHierarchy;
 	}
diff --git a/plugins/org.eclipse.emf.eef.views.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.views.edit/META-INF/MANIFEST.MF
index b2e375e..be6433b 100644
--- a/plugins/org.eclipse.emf.eef.views.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.views.edit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Views Edit Support
 Bundle-SymbolicName: org.eclipse.emf.eef.views.edit;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.views.provider.ViewsEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.eef.views.edit/pom.xml b/plugins/org.eclipse.emf.eef.views.edit/pom.xml
index e509a2f..3c79e21 100644
--- a/plugins/org.eclipse.emf.eef.views.edit/pom.xml
+++ b/plugins/org.eclipse.emf.eef.views.edit/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.views.edit</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.views.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.views.editor/META-INF/MANIFEST.MF
index dce0199..0d78ae7 100644
--- a/plugins/org.eclipse.emf.eef.views.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.views.editor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Views Editor
 Bundle-SymbolicName: org.eclipse.emf.eef.views.editor;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.views.presentation.ViewsEditorPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.eef.views.editor/pom.xml b/plugins/org.eclipse.emf.eef.views.editor/pom.xml
index bf193fc..db6b604 100644
--- a/plugins/org.eclipse.emf.eef.views.editor/pom.xml
+++ b/plugins/org.eclipse.emf.eef.views.editor/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.views.editor</artifactId>
diff --git a/plugins/org.eclipse.emf.eef.views/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.views/META-INF/MANIFEST.MF
index 0338654..96f5636 100644
--- a/plugins/org.eclipse.emf.eef.views/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.eef.views/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EEF Views Model
 Bundle-SymbolicName: org.eclipse.emf.eef.views;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.emf.eef.views/pom.xml b/plugins/org.eclipse.emf.eef.views/pom.xml
index f2c345c..a0a9632 100644
--- a/plugins/org.eclipse.emf.eef.views/pom.xml
+++ b/plugins/org.eclipse.emf.eef.views/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.views</artifactId>
diff --git a/plugins/org.eclipse.emf.modelingbot.xtext/pom.xml b/plugins/org.eclipse.emf.modelingbot.xtext/pom.xml
index 662a7b3..024f372 100644
--- a/plugins/org.eclipse.emf.modelingbot.xtext/pom.xml
+++ b/plugins/org.eclipse.emf.modelingbot.xtext/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.modelingbot.xtext</artifactId>
diff --git a/releng/org.eclipse.emf.eef.releng.parent/pom.xml b/releng/org.eclipse.emf.eef.releng.parent/pom.xml
index d46c24b..0a8ebc5 100644
--- a/releng/org.eclipse.emf.eef.releng.parent/pom.xml
+++ b/releng/org.eclipse.emf.eef.releng.parent/pom.xml
@@ -13,7 +13,7 @@
 	</prerequisites>
 	<groupId>org.eclipse.emf</groupId>
 	<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
-	<version>1.3.0-SNAPSHOT</version>
+	<version>1.4.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<name>EEF Parent</name>
@@ -32,10 +32,12 @@
 	</licenses>
 
 	<properties>
-		<tycho-version>0.14.1</tycho-version>
-		<tycho-extras-version>0.14.0</tycho-extras-version>
+		<tycho-version>0.20.0</tycho-version>
+		<tycho-extras-version>0.20.0</tycho-extras-version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-	</properties>
+		<maven-resources-version>2.6</maven-resources-version>
+ 		<resource-encoding>UTF-8</resource-encoding>
+ 	</properties>
 
 	<repositories>
 		<repository>
@@ -92,6 +94,111 @@
 	
 	<profiles>
 		<profile>
+			<id>juno4.2</id>
+			<repositories>
+				<repository>
+					<id>releasetrain</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/eclipse/updates/4.2</url>
+				</repository>
+				<repository>
+					<id>swtbot</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/technology/swtbot/helios/dev-build/update-site</url>
+				</repository>
+				<repository>
+					<id>emf</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/modeling/emf/emf/updates/2.8</url>
+				</repository>
+				<repository>
+					<id>emf-tools</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/modeling/emf/updates/milestones</url>
+				</repository>
+				<repository>
+					<id>ocl</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/modeling/mdt/ocl/updates/releases/4.0.0</url>
+				</repository>
+				<repository>
+					<id>acceleo</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/modeling/m2t/acceleo/updates/milestones/3.3</url>
+				</repository>
+				<repository>
+					<id>orbit</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository/</url>
+				</repository>
+				<repository>
+					<id>epf</id>
+					<layout>p2</layout>
+					<url>http://build.eclipse.org/modeling/emf/eef/epf/</url>
+				</repository>
+				<repository>
+					<id>cdo</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/modeling/emf/cdo/updates/releases/4.0/</url>
+				</repository>
+			</repositories>
+		</profile>
+		<profile>
+			<id>juno3.8</id>
+			<repositories>
+		<repository>
+			<id>cbi</id>
+			<layout>p2</layout>
+			<url>http://download.eclipse.org/cbi/updates/license</url>
+		</repository>
+				<repository>
+					<id>releasetrain</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/eclipse/updates/3.8</url>
+				</repository>
+				<repository>
+					<id>swtbot</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/technology/swtbot/helios/dev-build/update-site</url>
+				</repository>
+				<repository>
+					<id>emf</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/modeling/emf/emf/updates/2.8</url>
+				</repository>
+				<repository>
+					<id>emf-tools</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/modeling/emf/updates/milestones</url>
+				</repository>
+				<repository>
+					<id>ocl</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/modeling/mdt/ocl/updates/releases/4.0.0</url>
+				</repository>
+				<repository>
+					<id>acceleo</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/modeling/m2t/acceleo/updates/releases/3.3</url>
+				</repository>
+				<repository>
+					<id>orbit</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository</url>
+				</repository>
+				<repository>
+					<id>epf</id>
+					<layout>p2</layout>
+					<url>http://build.eclipse.org/modeling/emf/eef/epf/</url>
+				</repository>
+				<repository>
+					<id>cdo</id>
+					<layout>p2</layout>
+					<url>http://download.eclipse.org/modeling/emf/cdo/updates/releases/4.0/</url>
+				</repository>
+			</repositories>
+		</profile>
+		<profile>
 			<id>sign</id>
 			<activation>
 				<property>
@@ -162,6 +269,65 @@
 		</profile>
 	</profiles>
 
+	<modules>
+		<module>../../plugins/org.eclipse.emf.eef.runtime</module>
+		<module>../../plugins/org.eclipse.emf.eef.runtime.extended</module>
+		<module>../../plugins/org.eclipse.emf.eef.runtime.tests</module>
+		<module>../../plugins/org.eclipse.emf.eef.cdo.runtime</module>
+
+		<module>../../doc/org.eclipse.emf.eef.doc</module>
+
+		<module>../../plugins/org.eclipse.emf.eef.components</module>
+		<module>../../plugins/org.eclipse.emf.eef.components.edit</module>
+		<module>../../plugins/org.eclipse.emf.eef.components.editor</module>
+		<module>../../plugins/org.eclipse.emf.eef.eefgen</module>
+		<module>../../plugins/org.eclipse.emf.eef.eefgen.edit</module>
+		<module>../../plugins/org.eclipse.emf.eef.eefgen.editor</module>
+		<module>../../plugins/org.eclipse.emf.eef.mapping</module>
+		<module>../../plugins/org.eclipse.emf.eef.mapping.edit</module>
+		<module>../../plugins/org.eclipse.emf.eef.views</module>
+		<module>../../plugins/org.eclipse.emf.eef.views.edit</module>
+		<module>../../plugins/org.eclipse.emf.eef.views.editor</module>
+		<module>../../plugins/org.eclipse.emf.eef.editor.model</module>
+		<module>../../plugins/org.eclipse.emf.eef.extended.widgets.richtext</module>
+
+		<module>../../plugins/org.eclipse.emf.eef.modelingbot</module>
+		<module>../../plugins/org.eclipse.emf.eef.modelingbot.edit</module>
+		<module>../../plugins/org.eclipse.emf.eef.modelingbot.editor</module>
+
+		<module>../../plugins/org.eclipse.emf.eef.codegen</module>
+		<module>../../plugins/org.eclipse.emf.eef.codegen.launcher</module>
+		<module>../../plugins/org.eclipse.emf.eef.codegen.ecore</module>
+		<module>../../plugins/org.eclipse.emf.eef.codegen.extended</module>
+		<module>../../plugins/org.eclipse.emf.eef.codegen.extended.widgets.richtext</module>
+		<!-- <module>../../plugins/org.eclipse.emf.eef.tests.codegen</module> -->
+
+		<module>../../plugins/org.eclipse.emf.eef.branding</module>
+		<module>../../features/org.eclipse.emf.eef.runtime-feature</module>
+		<module>../../features/org.eclipse.emf.eef.collab.runtime-feature</module>
+		<module>../../features/org.eclipse.emf.eef.extended-feature</module>
+		<module>../../features/org.eclipse.emf.eef.edt-feature</module>
+		<module>../../features/org.eclipse.emf.eef.codegen.ecore-feature</module>
+		<module>../../features/org.eclipse.emf.eef.codegen.richtext-feature</module>
+		<module>../../features/org.eclipse.emf.eef.richtext-feature</module>
+		<module>../../features/org.eclipse.emf.eef.codegen.uml.feature</module>
+		<module>../../features/org.eclipse.emf.eef.sdk-feature</module>
+		<!-- deprecated <module>../../features/org.eclipse.emf.eef.indigo-feature</module> -->
+
+		<module>../org.eclipse.emf.eef.update</module>
+		<module>../org.eclipse.emf.eef.uml.update</module>
+
+		<module>../../tests/org.eclipse.emf.examples.eef</module>
+		<module>../../tests/org.eclipse.emf.examples.eef.edit</module>
+		<module>../../tests/org.eclipse.emf.examples.eef.editor</module>
+		<module>../../tests/org.eclipse.emf.examples.eef.tests.junit</module>
+		<module>../../tests/org.eclipse.emf.eef.tests.nonreg</module>
+		<module>../../tests/org.eclipse.emf.eef.tests.nonreg.edit</module>
+		<module>../../tests/org.eclipse.emf.eef.tests.nonreg.editor</module>
+		<module>../../tests/org.eclipse.emf.eef.tests.nonreg.junit</module>
+
+	</modules>
+
 	<build>
 		<plugins>
 			<plugin>
@@ -243,6 +409,14 @@
 					<artifactId>maven-antrun-plugin</artifactId>
 					<version>1.3</version>
 				</plugin>
+				<plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>${maven-resources-version}</version>
+          <configuration>
+            <encoding>${resource-encoding}</encoding>
+          </configuration>
+        </plugin>
 			</plugins>
 		</pluginManagement>
 	</build>
diff --git a/releng/org.eclipse.emf.eef.uml.update/.gitignore b/releng/org.eclipse.emf.eef.uml.update/.gitignore
new file mode 100644
index 0000000..02ce755
--- /dev/null
+++ b/releng/org.eclipse.emf.eef.uml.update/.gitignore
@@ -0,0 +1,3 @@
+target
+artifacts*.xml
+promote.properties
diff --git a/releng/org.eclipse.emf.eef.uml.update/.project b/releng/org.eclipse.emf.eef.uml.update/.project
new file mode 100644
index 0000000..20026a1
--- /dev/null
+++ b/releng/org.eclipse.emf.eef.uml.update/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.eef.uml.update</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/releng/org.eclipse.emf.eef.uml.update/category.xml b/releng/org.eclipse.emf.eef.uml.update/category.xml
new file mode 100644
index 0000000..d76eeb5
--- /dev/null
+++ b/releng/org.eclipse.emf.eef.uml.update/category.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+   <description>
+      To install these features, point Eclipse at this site.
+   </description>
+   <feature url="features/org.eclipse.emf.eef.codegen.uml.feature_1.4.0.qualifier.jar" id="org.eclipse.emf.eef.codegen.uml.feature" version="1.4.0.qualifier">
+      <category name="eef.integration"/>
+   </feature>
+   <category-def name="eef.integration" label="EEF Integration">
+      <description>
+         EEF integration for specific cases, like UML2.
+      </description>
+   </category-def>
+</site>
diff --git a/releng/org.eclipse.emf.eef.uml.update/pom.xml b/releng/org.eclipse.emf.eef.uml.update/pom.xml
new file mode 100644
index 0000000..2fcc6f0
--- /dev/null
+++ b/releng/org.eclipse.emf.eef.uml.update/pom.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright (c) 2011 Obeo.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+   
+    Contributors:
+        Obeo - initial creator
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
+>
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.emf</groupId>
+		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
+		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.emf.eef.uml.update</artifactId>
+	<packaging>eclipse-repository</packaging>
+
+	<name>EEF UML Repository</name>
+	<!-- see http://issues.sonatype.org/browse/TYCHO-313 -->
+	<version>1.4.0-SNAPSHOT</version>
+
+	<build>
+   <resources>
+      <resource>
+        <directory>.</directory>
+        <filtering>true</filtering>
+        <includes>
+          <include>publisher.properties</include>
+        </includes>
+      </resource>
+    </resources>
+    		<plugins>
+
+           <plugin>
+                <groupId>org.eclipse.tycho</groupId>
+                <artifactId>tycho-p2-repository-plugin</artifactId>
+                <version>${tycho-version}</version>
+                <configuration>
+                    <createArtifactRepository>true</createArtifactRepository>
+                    <finalName>${project.artifactId}-${unqualifiedVersion}.${buildQualifier}</finalName>
+                    <compress>true</compress>
+                </configuration>
+            </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>verify</phase>
+            <goals>
+              <goal>resources</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <outputDirectory>${project.build.directory}</outputDirectory>
+        </configuration>
+      </plugin>
+      		</plugins>
+	</build>
+
+</project>
diff --git a/releng/org.eclipse.emf.eef.uml.update/publisher.properties b/releng/org.eclipse.emf.eef.uml.update/publisher.properties
new file mode 100644
index 0000000..61c319c
--- /dev/null
+++ b/releng/org.eclipse.emf.eef.uml.update/publisher.properties
@@ -0,0 +1,8 @@
+# EEF publisher properties
+UPDATE_SITE__UNQUALIFIED_VERSION=${unqualifiedVersion}
+UPDATE_SITE__QUALIFIED_VERSION=${unqualifiedVersion}.${buildQualifier}
+UPDATE_SITE__ARTIFACT_NAME=${project.artifactId}-${unqualifiedVersion}.${buildQualifier}.zip
+UPDATE_SITE__ARTIFACT_URL=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/${project.artifactId}/target/${project.artifactId}-${unqualifiedVersion}.${buildQualifier}.zip
+
+
+ 
\ No newline at end of file
diff --git a/releng/org.eclipse.emf.eef.update/category.xml b/releng/org.eclipse.emf.eef.update/category.xml
index 5abbd5a..c102340 100644
--- a/releng/org.eclipse.emf.eef.update/category.xml
+++ b/releng/org.eclipse.emf.eef.update/category.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Copyright (c) 2008, 2010 Obeo.
-    All rights reserved. This program and the accompanying materials
-    are made available under the terms of the Eclipse Public License v1.0
-    which accompanies this distribution, and is available at
-    http://www.eclipse.org/legal/epl-v10.html
-   
-    Contributors:
-        Obeo - initial API and implementation
- -->
+<!--
+    Copyright (c) 2008, 2010 Obeo.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+   
+    Contributors:
+        Obeo - initial API and implementation
+ -->
 <site>
    <description>
       To install these features, point Eclipse at this site.
@@ -33,29 +33,29 @@
    </feature>
    <category-def name="eef.sdk" label="EEF SDK">
       <description>
-         EEF SDK package. It contains runtime, metamodels, generators,
-   documentation and extended capabilities (with source).
-      </description>
-   </category-def>
-   <category-def name="eef.features" label="EEF Common">
-      <description>
-         Contains all necessary features for EEF : EEF runtime, EEF metamodels, EEF
-   generators and EEF documentation.
-      </description>
-   </category-def>
-   <category-def name="eef.integration" label="EEF Integration">
-      <description>
-         EEF integration for specific cases, like UML2.
-      </description>
-   </category-def>
-   <category-def name="eef.tests" label="EEF Tests Utilities">
-      <description>
-         Several utilities for testing EEF forms.
-      </description>
-   </category-def>
-   <category-def name="eef.extension" label="EEF Extension">
-      <description>
-         EEF Extensions.
-      </description>
-   </category-def>
-</site>
+         EEF SDK package. It contains runtime, metamodels, generators,
+   documentation and extended capabilities (with source).
+      </description>
+   </category-def>
+   <category-def name="eef.features" label="EEF Common">
+      <description>
+         Contains all necessary features for EEF : EEF runtime, EEF metamodels, EEF
+   generators and EEF documentation.
+      </description>
+   </category-def>
+   <category-def name="eef.integration" label="EEF Integration">
+      <description>
+         EEF integration for specific cases, like UML2.
+      </description>
+   </category-def>
+   <category-def name="eef.tests" label="EEF Tests Utilities">
+      <description>
+         Several utilities for testing EEF forms.
+      </description>
+   </category-def>
+   <category-def name="eef.extension" label="EEF Extension">
+      <description>
+         EEF Extensions.
+      </description>
+   </category-def>
+</site>
diff --git a/releng/org.eclipse.emf.eef.update/p2.xsl b/releng/org.eclipse.emf.eef.update/p2.xsl
deleted file mode 100644
index 8c804d3..0000000
--- a/releng/org.eclipse.emf.eef.update/p2.xsl
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version='1.0'?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-	<xsl:output method="xml" indent="yes"/>
-
-	<xsl:param name="mirrorsURL"/>
-
-	<!-- add p2.mirrorsURL and p2.statsURI properties -->
-	<xsl:template match="repository/properties">
-		<properties size='{@size+2}'>
-			<xsl:copy-of select="property"/>
-			<property name='p2.statsURI' value='http://download.eclipse.org/stats'/>
-			<xsl:element name="property">
-				<xsl:attribute name="name">p2.mirrorsURL</xsl:attribute>
-				<xsl:attribute name="value"><xsl:value-of select="$mirrorsURL"/></xsl:attribute>
-			</xsl:element>
-		</properties>
-	</xsl:template>
-
-	<!-- add p2.mirrorsURL property -->
-	<xsl:template match="repository/artifacts/artifact/properties[../@classifier='org.eclipse.update.feature']">
-		<properties size='{@size+1}'>
-			<xsl:copy-of select="property"/>
-			<property name='download.stats' value='{../@id}-{../@version}'/>
-		</properties>
-	</xsl:template>
-
-	<!-- copy everything else -->
-	<xsl:template match="* | @*">
-		<xsl:copy>
-			<xsl:copy-of select="@*"/>
-			<xsl:apply-templates/>
-		</xsl:copy>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/releng/org.eclipse.emf.eef.update/pom.xml b/releng/org.eclipse.emf.eef.update/pom.xml
index 1b3424b..7202264 100644
--- a/releng/org.eclipse.emf.eef.update/pom.xml
+++ b/releng/org.eclipse.emf.eef.update/pom.xml
@@ -19,7 +19,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.update</artifactId>
@@ -27,58 +27,46 @@
 
 	<name>EEF Repository</name>
 	<!-- see http://issues.sonatype.org/browse/TYCHO-313 -->
-	<version>1.3.0-SNAPSHOT</version>
+	<version>1.4.0-SNAPSHOT</version>
 
 	<build>
-		<plugins>
-			<plugin>
-				<artifactId>maven-resources-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>copy-resources</id>
-						<phase>validate</phase>
-						<goals>
-							<goal>copy-resources</goal>
-						</goals>
-						<configuration>
-							<outputDirectory>${basedir}/target/repository</outputDirectory>
-							<resources>
-								<resource>
-									<directory>.</directory>
-									<includes>
-										<include>index.html</include>
-										<include>web/*</include>
-									</includes>
-								</resource>
-							</resources>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<artifactId>maven-antrun-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>prepare_promotion</id>
-						<phase>verify</phase>
-						<goals>
-							<goal>run</goal>
-						</goals>
-						<configuration>
-							<tasks>
-								<!-- create a properties file for promotion process -->
-								<mkdir dir="${project.build.directory}/promotion"/>
-								<echo file="${project.build.directory}/promotion/promote.properties"
-									message="#EEF promotion process.${line.separator}build.alias=${BUILD_ALIAS}${line.separator}build.qualifier=${env.BUILD_TYPE}${buildQualifier}${line.separator}version=${unqualifiedVersion}"/>
-								<!-- copy necessary scripts to archive location -->
-								<copy file="p2.xsl" todir="${project.build.directory}/promotion"/>
-								<copy file="promoter.xml" todir="${project.build.directory}/promotion"/>
-							</tasks>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
+   <resources>
+      <resource>
+        <directory>.</directory>
+        <filtering>true</filtering>
+        <includes>
+          <include>publisher.properties</include>
+        </includes>
+      </resource>
+    </resources>
+    		<plugins>
+
+           <plugin>
+                <groupId>org.eclipse.tycho</groupId>
+                <artifactId>tycho-p2-repository-plugin</artifactId>
+                <version>${tycho-version}</version>
+                <configuration>
+                    <createArtifactRepository>true</createArtifactRepository>
+                    <finalName>${project.artifactId}-${unqualifiedVersion}.${buildQualifier}</finalName>
+                    <compress>true</compress>
+                </configuration>
+            </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>verify</phase>
+            <goals>
+              <goal>resources</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <outputDirectory>${project.build.directory}</outputDirectory>
+        </configuration>
+      </plugin>
+      		</plugins>
 	</build>
 
 </project>
diff --git a/releng/org.eclipse.emf.eef.update/promoter.xml b/releng/org.eclipse.emf.eef.update/promoter.xml
deleted file mode 100644
index 2f74b48..0000000
--- a/releng/org.eclipse.emf.eef.update/promoter.xml
+++ /dev/null
@@ -1,288 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2011 Obeo.
-  All rights reserved. This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License v1.0
-  which accompanies this distribution, and is available at
-  http://www.eclipse.org/legal/epl-v10.html
-  
-  Contributors:
-      Obeo - initial API and implementation
-
- $Id: promoter.xml,v 1.36 2012/03/21 08:40:06 sbouchet Exp $
--->
-<project name="Promoter" default="main">
-	<!--
-	This promotion script helps to automatically promote the last sucessful build of tycho based build to correct location.
-	
-	Be sure to use at least ant 1.8.2 to launch this script.
-	
-	Ant 1.8.2 is located here : /shared/common/apache-ant-1.8.2/
-	on build.eclipse.org, do a 
-	$> export ANT_HOME=/shared/common/apache-ant-1.8.2/ 
-	-->
-
-	<property name="downloads.project.root" value="modeling/emft/eef" />
-	<property name="build.root" value="/shared/jobs/emf-eef-1.2/lastSuccessful/archive/releng/org.eclipse.emf.eef.update/target/" />
-	<property name="thirdPartyJarsDir" value="/shared/modeling/emf/eef/3rdPartyJars" />
-	<property name="project.name" value="EEF" />
-	<property name="final.updatesite.name" value="emf-eef-Update" />
-	<property name="build.root.updatesite.name" value="org.eclipse.emf.eef.update.zip" />
-	<property name="group.owner" value="modeling.emf.eef" />
-
-	<!--# To permit automatic downloads of non-EPL compatible code, override this to property to "Y" -->
-	<property name="thirdPartyDownloadLicenseAcceptance" value="Y" />
-
-	<property name="downloads.root" value="/home/data/httpd/download.eclipse.org/" />
-	<property name="downloads.area" value="${downloads.root}/${downloads.project.root}" />
-	<property name="property.file.location" location="${build.root}/promotion/promote.properties" />
-	<antversion property="antversion" />
-
-	<!--
-	most of the code comes from Athena CBI.
-	see http://wiki.eclipse.org/Common_Build_Infrastructure
-	-->
-	<target name="check.ant-contrib" if="antContribJarUnavailable">
-		<condition property="thirdPartyDownloadLicenseAcceptanceOK">
-			<and>
-				<isset property="thirdPartyDownloadLicenseAcceptance" />
-				<or>
-					<equals arg1="${thirdPartyDownloadLicenseAcceptance}" arg2="Y" />
-					<equals arg1="${thirdPartyDownloadLicenseAcceptance}" arg2="I accept" />
-					<equals arg1="${thirdPartyDownloadLicenseAcceptance}" arg2="&quot;I accept&quot;" />
-				</or>
-			</and>
-		</condition>
-		<antcall target="get.ant-contrib" />
-		<available file="${thirdPartyJarsDir}/ant-contrib.jar" property="antContribJarAvailable" />
-		<fail unless="antContribJarAvailable">Error! 
-
-Ant-Contrib is required. Download it from http://sourceforge.net/projects/ant-contrib/files/ant-contrib/1.0b3/ant-contrib-1.0b3-bin.zip/download,
-then place it in the following location. You can also redefine the path in the promote.properties file:
-
-$${thirdPartyJarsDir}/ant-contrib.jar          = ${thirdPartyJarsDir}/ant-contrib.jar
-
-Or, to download this automatically, see promoter.xml#thirdPartyDownloadLicenseAcceptance property.
-		</fail>
-	</target>
-
-	<target name="get.ant-contrib" if="thirdPartyDownloadLicenseAcceptanceOK">
-		<get src="http://sourceforge.net/projects/ant-contrib/files/ant-contrib/1.0b3/ant-contrib-1.0b3-bin.zip/download" dest="${java.io.tmpdir}/ant-contrib-1.0b3-bin.zip" usetimestamp="true" />
-		<mkdir dir="${java.io.tmpdir}/ant-contrib-1.0b3-bin.zip_" />
-		<unzip src="${java.io.tmpdir}/ant-contrib-1.0b3-bin.zip" dest="${java.io.tmpdir}/ant-contrib-1.0b3-bin.zip_" overwrite="true" />
-		<mkdir dir="${thirdPartyJarsDir}" />
-		<copy file="${java.io.tmpdir}/ant-contrib-1.0b3-bin.zip_/ant-contrib/ant-contrib-1.0b3.jar" tofile="${thirdPartyJarsDir}/ant-contrib.jar" failonerror="true" />
-		<delete dir="${java.io.tmpdir}/ant-contrib-1.0b3-bin.zip_" includeemptydirs="true" quiet="true" />
-		<delete file="${java.io.tmpdir}/ant-contrib-1.0b3-bin.zip" quiet="true" />
-	</target>
-
-	<target name="init">
-		<fail message="Please use at least ant 1.8.0. Modify your ANT_HOME path to point to a correct location">
-			<condition>
-				<not>
-					<contains string="${antversion}" substring="1.8" />
-				</not>
-			</condition>
-		</fail>
-		<condition property="antContribJarUnavailable">
-			<not>
-				<available file="${thirdPartyJarsDir}/ant-contrib.jar" type="file" />
-			</not>
-		</condition>
-		<antcall target="check.ant-contrib" />
-		<!-- This will fail if ant-contrib.jar cannot be found. You can install Ant-Contrib via RPM, or download it here:
-				http://sourceforge.net/projects/ant-contrib/files/ant-contrib/1.0b3/ant-contrib-1.0b3-bin.zip/download
-		-->
-		<taskdef resource="net/sf/antcontrib/antlib.xml">
-			<classpath>
-				<pathelement location="${thirdPartyJarsDir}/ant-contrib.jar" />
-			</classpath>
-		</taskdef>
-		<available file="${property.file.location}" property="propertyFileAvailable" />
-		<fail message="property.file.location property must be defined" unless="propertyFileAvailable" />
-	</target>
-
-	<target name="load.properties">
-		<property file="${property.file.location}" />
-	</target>
-
-	<target name="init.properties">
-		<fail message="build.qualifier property must be defined">
-			<condition>
-				<not>
-					<and>
-						<isset property="build.qualifier" />
-						<length string="${build.qualifier}" trim="true" when="greater" length="0" />
-					</and>
-				</not>
-			</condition>
-		</fail>
-		<propertyregex override="true" property="build.qualifier" input="${build.qualifier}" regexp="v" replace="" casesensitive="false" />
-		<fail message="version property must be defined">
-			<condition>
-				<not>
-					<and>
-						<isset property="version" />
-						<length string="${version}" trim="true" when="greater" length="0" />
-					</and>
-				</not>
-			</condition>
-		</fail>
-		<if>
-			<and>
-				<isset property="build.alias" />
-				<length string="${build.alias}" trim="true" when="greater" length="0" />
-			</and>
-			<then>
-				<property name="final.version.qualifier" value="${build.alias}" />
-			</then>
-			<else>
-				<property name="final.version.qualifier" value="${build.qualifier}" />
-			</else>
-		</if>
-		<fail message="build.root property must be defined" unless="build.root" />
-		<fail message="downloads.area property must be defined" unless="downloads.area" />
-	</target>
-
-	<target name="main" depends="init,load.properties,init.properties">
-
-		<!-- publish into drops ( Zips ) -->
-		<antcall target="-publish.build.drops" inheritall="true" />
-
-		<!-- publish p2 repository -->
-		<antcall target="-publish.build.repository" inheritall="true" />
-	</target>
-
-	<target name="-publish.build.drops">
-		<property name="build.drop.directory" location="${downloads.area}/downloads/drops/${version}/${build.qualifier}" />
-
-		<echo message="Currently working on the version ${version}"/>
-		<delete dir="${build.drop.directory}" />
-		<mkdir dir="${build.drop.directory}" />
-
-		<!-- copy zip packages -->
-		<copy todir="${build.drop.directory}">
-			<fileset dir="${build.root}">
-				<filename name="*.zip" />
-			</fileset>
-		</copy>
-
-		<!-- rename UpdateSite zip package -->
-		<move tofile="${build.drop.directory}/${final.updatesite.name}-${final.version.qualifier}.zip" file="${build.drop.directory}/${build.root.updatesite.name}" />
-
-		<!-- genereate md5 checksums -->
-		<checksum algorithm="MD5" fileext=".md5" format="MD5SUM">
-			<fileset dir="${build.drop.directory}" />
-		</checksum>
-
-		<fileset id="drop.resources" dir="${build.drop.directory}">
-			<or>
-				<type type="dir" />
-				<type type="file" />
-			</or>
-		</fileset>
-
-		<!-- chgrp -->
-		<chgrp group="${group.owner}" type="both" verbose="true">
-			<fileset refid="drop.resources" />
-		</chgrp>
-
-	</target>
-
-	<target name="-publish.build.repository">
-		<!-- determine the base version -->
-		<propertyregex property="base.version" input="${version}" regexp="^(\d+\.\d+)\.\d+.*$" select="\1" casesensitive="false" />
-
-		<!-- setup composite.repository.base and composite.type according to the build type -->
-		<condition property="composite.repository.base" value="interim/${base.version}">
-			<matches pattern="^I" string="${build.qualifier}" />
-		</condition>
-		<condition property="composite.repository.base" value="milestones/${base.version}">
-			<matches pattern="^[MS]" string="${build.qualifier}" />
-		</condition>
-		<condition property="composite.repository.base" value="releases/${base.version}">
-			<matches pattern="^R" string="${build.qualifier}" />
-		</condition>
-		<condition property="composite.repository.base" value="nightly/${base.version}">
-			<matches pattern="^N" string="${build.qualifier}" />
-		</condition>
-		<condition property="composite.type" value="Interim">
-			<matches pattern="^I" string="${build.qualifier}" />
-		</condition>
-		<condition property="composite.type" value="Milestones">
-			<matches pattern="^[MS]" string="${build.qualifier}" />
-		</condition>
-		<condition property="composite.type" value="Releases">
-			<matches pattern="^R" string="${build.qualifier}" />
-		</condition>
-		<condition property="composite.type" value="Nightly">
-			<matches pattern="^N" string="${build.qualifier}" />
-		</condition>
-
-		<property name="composite.repository.directory" location="${downloads.area}/updates/${composite.repository.base}" />
-		<property name="composite.repository.url" value="file:/${composite.repository.directory}" />
-		<property name="build.repository.directory" location="${composite.repository.directory}/${build.qualifier}" />
-		<property name="mirror.repository.path" value="${downloads.project.root}/updates/${composite.repository.base}/${build.qualifier}" />
-
-		<delete dir="${build.repository.directory}" />
-		<mkdir dir="${build.repository.directory}" />
-
-		<!-- unzip update site to final location -->
-		<unzip dest="${build.repository.directory}">
-			<fileset dir="${build.root}">
-				<filename name="*.zip" />
-			</fileset>
-		</unzip>
-
-		<!-- adding p2.index -->
-		<echo file="${build.repository.directory}/p2.index" message="version = 1${line.separator}metadata.repository.factory.order = content.xml,\!${line.separator}artifact.repository.factory.order = artifacts.xml,\!" />
-
-		<!-- adding p2.mirrorsURL and p2.statsURI to the repository -->
-		<unzip dest="${build.repository.directory}">
-			<fileset file="${build.repository.directory}/artifacts.jar" />
-		</unzip>
-
-		<move file="${build.repository.directory}/artifacts.xml" tofile="${build.repository.directory}/artifacts.original.xml" />
-
-		<xslt style="p2.xsl" in="${build.repository.directory}/artifacts.original.xml" out="${build.repository.directory}/artifacts.xml">
-			<param name="mirrorsURL" expression="http://www.eclipse.org/downloads/download.php?file=${mirror.repository.path}&amp;format=xml" />
-		</xslt>
-
-		<zip destfile="${build.repository.directory}/artifacts.jar" basedir="${build.repository.directory}" includes="artifacts.xml" />
-
-		<delete file="${build.repository.directory}/artifacts.xml" />
-		<delete file="${build.repository.directory}/artifacts.original.xml" />
-
-		<!-- add to composite repo -->
-		<ant antfile="/shared/modeling/tools/promotion/manage-composite.xml" target="add" dir="${composite.repository.directory}">
-			<property name="user.dir" value="${composite.repository.directory}" />
-			<property name="child.repository" value="${build.qualifier}" />
-			<property name="composite.name" value="${project.name} ${base.version} ${composite.type} Update Site" />
-		</ant>
-
-		<!-- add p2.index on top of composite repo is needed -->
-		<if>
-			<not>
-				<available file="${composite.repository.directory}/p2.index" type="file" />
-			</not>
-			<then>
-				<echo file="${composite.repository.directory}/p2.index" message="version = 1${line.separator}metadata.repository.factory.order = compositeContent.xml,\!${line.separator}artifact.repository.factory.order = compositeArtifacts.xml,\!" />
-			</then>
-		</if>
-
-		<fileset id="repository.resources" dir="${composite.repository.directory}">
-			<or>
-				<filename name="compositeContent.*" />
-				<filename name="compositeArtifacts.*" />
-				<filename name="p2.index" />
-				<filename name="${build.qualifier}/**" />
-			</or>
-		</fileset>
-
-		<!-- chgrp -->
-		<chgrp group="${group.owner}" type="both" verbose="true">
-			<fileset refid="repository.resources" />
-		</chgrp>
-	</target>
-
-</project>
diff --git a/releng/org.eclipse.emf.eef.update/publisher.properties b/releng/org.eclipse.emf.eef.update/publisher.properties
new file mode 100644
index 0000000..61c319c
--- /dev/null
+++ b/releng/org.eclipse.emf.eef.update/publisher.properties
@@ -0,0 +1,8 @@
+# EEF publisher properties
+UPDATE_SITE__UNQUALIFIED_VERSION=${unqualifiedVersion}
+UPDATE_SITE__QUALIFIED_VERSION=${unqualifiedVersion}.${buildQualifier}
+UPDATE_SITE__ARTIFACT_NAME=${project.artifactId}-${unqualifiedVersion}.${buildQualifier}.zip
+UPDATE_SITE__ARTIFACT_URL=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/${project.artifactId}/target/${project.artifactId}-${unqualifiedVersion}.${buildQualifier}.zip
+
+
+ 
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.eef.nonreg.design/bin/org/eclipse/emf/eef/nonreg/design/Activator.class b/tests/org.eclipse.emf.eef.nonreg.design/bin/org/eclipse/emf/eef/nonreg/design/Activator.class
new file mode 100644
index 0000000..5df7dc2
--- /dev/null
+++ b/tests/org.eclipse.emf.eef.nonreg.design/bin/org/eclipse/emf/eef/nonreg/design/Activator.class
Binary files differ
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.eef.tests.nonreg.edit/META-INF/MANIFEST.MF
index 44d438f..caee5f4 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.eef.tests.nonreg.edit;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.eefnr.provider.EefnrEditPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/pom.xml b/tests/org.eclipse.emf.eef.tests.nonreg.edit/pom.xml
index 04cc4b7..7c239a1 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/pom.xml
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.tests.nonreg.edit</artifactId>
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/parts/forms/ConcreteReferenceOwnerSamplePropertiesEditionPartForm.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/parts/forms/ConcreteReferenceOwnerSamplePropertiesEditionPartForm.java
index 75157aa..bd33c7f 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/parts/forms/ConcreteReferenceOwnerSamplePropertiesEditionPartForm.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/parts/forms/ConcreteReferenceOwnerSamplePropertiesEditionPartForm.java
@@ -674,6 +674,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		abstractTarget.setContentProvider(contentProvider);
 		abstractTarget.setInput(settings);
+		abstractTargetBusinessFilters.clear();
+		abstractTargetFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(FiltersViewsRepository.ConcreteReferenceOwnerSample.Properties.abstractTarget);
 		if (eefElementEditorReadOnlyState && abstractTarget.getTable().isEnabled()) {
 			abstractTarget.setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/parts/impl/ConcreteReferenceOwnerSamplePropertiesEditionPartImpl.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/parts/impl/ConcreteReferenceOwnerSamplePropertiesEditionPartImpl.java
index fcfae82..69b587e 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/parts/impl/ConcreteReferenceOwnerSamplePropertiesEditionPartImpl.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/parts/impl/ConcreteReferenceOwnerSamplePropertiesEditionPartImpl.java
@@ -644,6 +644,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		abstractTarget.setContentProvider(contentProvider);
 		abstractTarget.setInput(settings);
+		abstractTargetBusinessFilters.clear();
+		abstractTargetFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(FiltersViewsRepository.ConcreteReferenceOwnerSample.Properties.abstractTarget);
 		if (eefElementEditorReadOnlyState && abstractTarget.getTable().isEnabled()) {
 			abstractTarget.setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/providers/FiltersPropertiesEditionPartProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/providers/FiltersPropertiesEditionPartProvider.java
index 95203b7..ba39d90 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/providers/FiltersPropertiesEditionPartProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/filters/providers/FiltersPropertiesEditionPartProvider.java
@@ -10,20 +10,20 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.filters.providers;
 
-import org.eclipse.emf.eef.eefnr.filters.parts.FiltersViewsRepository;
-
-import org.eclipse.emf.eef.eefnr.filters.parts.forms.ConcreteReferenceOwnerSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.filters.parts.forms.ConcreteReferenceTargetSample1PropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.filters.parts.forms.ConcreteReferenceTargetSample2PropertiesEditionPartForm;
-
-import org.eclipse.emf.eef.eefnr.filters.parts.impl.ConcreteReferenceOwnerSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.filters.parts.impl.ConcreteReferenceTargetSample1PropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.filters.parts.impl.ConcreteReferenceTargetSample2PropertiesEditionPartImpl;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
-
+import org.eclipse.emf.eef.eefnr.filters.parts.FiltersViewsRepository;
+
+import org.eclipse.emf.eef.eefnr.filters.parts.forms.ConcreteReferenceOwnerSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.filters.parts.forms.ConcreteReferenceTargetSample1PropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.filters.parts.forms.ConcreteReferenceTargetSample2PropertiesEditionPartForm;
+
+import org.eclipse.emf.eef.eefnr.filters.parts.impl.ConcreteReferenceOwnerSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.filters.parts.impl.ConcreteReferenceTargetSample1PropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.filters.parts.impl.ConcreteReferenceTargetSample2PropertiesEditionPartImpl;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
+
 import org.eclipse.emf.eef.runtime.api.providers.IPropertiesEditionPartProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/interface_/providers/Interface_PropertiesEditionPartProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/interface_/providers/Interface_PropertiesEditionPartProvider.java
index 3449f88..4b8695b 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/interface_/providers/Interface_PropertiesEditionPartProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/interface_/providers/Interface_PropertiesEditionPartProvider.java
@@ -10,12 +10,12 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.interface_.providers;
 
-import org.eclipse.emf.eef.eefnr.interface_.parts.Interface_ViewsRepository;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
-
+import org.eclipse.emf.eef.eefnr.interface_.parts.Interface_ViewsRepository;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
+
 import org.eclipse.emf.eef.runtime.api.providers.IPropertiesEditionPartProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/forms/DeferedReferencesTableSamplePropertiesEditionPartForm.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/forms/DeferedReferencesTableSamplePropertiesEditionPartForm.java
index d997149..83ecfb8 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/forms/DeferedReferencesTableSamplePropertiesEditionPartForm.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/forms/DeferedReferencesTableSamplePropertiesEditionPartForm.java
@@ -471,6 +471,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencesTableSampleEditor.setContentProvider(contentProvider);
 		referencesTableSampleEditor.setInput(settings);
+		referencesTableSampleEditorBusinessFilters.clear();
+		referencesTableSampleEditorFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(NavigationViewsRepository.DeferedReferencesTableSample.Properties.referencesTableSampleEditor);
 		if (eefElementEditorReadOnlyState && referencesTableSampleEditor.getTable().isEnabled()) {
 			referencesTableSampleEditor.getTable().setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/forms/OwnerPropertiesEditionPartForm.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/forms/OwnerPropertiesEditionPartForm.java
index e59a891..50801a4 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/forms/OwnerPropertiesEditionPartForm.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/forms/OwnerPropertiesEditionPartForm.java
@@ -1791,6 +1791,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		multipleSampleForReferencesTable.setContentProvider(contentProvider);
 		multipleSampleForReferencesTable.setInput(settings);
+		multipleSampleForReferencesTableBusinessFilters.clear();
+		multipleSampleForReferencesTableFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(NavigationViewsRepository.Owner.Properties.multipleSampleForReferencesTable);
 		if (eefElementEditorReadOnlyState && multipleSampleForReferencesTable.getTable().isEnabled()) {
 			multipleSampleForReferencesTable.getTable().setEnabled(false);
@@ -1860,6 +1862,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		multipleSampleForAdvancedReferencesTable.setContentProvider(contentProvider);
 		multipleSampleForAdvancedReferencesTable.setInput(settings);
+		multipleSampleForAdvancedReferencesTableBusinessFilters.clear();
+		multipleSampleForAdvancedReferencesTableFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(NavigationViewsRepository.Owner.Properties.multipleSampleForAdvancedReferencesTable);
 		if (eefElementEditorReadOnlyState && multipleSampleForAdvancedReferencesTable.getTable().isEnabled()) {
 			multipleSampleForAdvancedReferencesTable.setEnabled(false);
@@ -2125,6 +2129,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		singleSampleForReferencesTable.setContentProvider(contentProvider);
 		singleSampleForReferencesTable.setInput(settings);
+		singleSampleForReferencesTableBusinessFilters.clear();
+		singleSampleForReferencesTableFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(NavigationViewsRepository.Owner.Properties.singleSampleForReferencesTable);
 		if (eefElementEditorReadOnlyState && singleSampleForReferencesTable.getTable().isEnabled()) {
 			singleSampleForReferencesTable.getTable().setEnabled(false);
@@ -2194,6 +2200,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		singleSampleForAdvancedReferencesTable.setContentProvider(contentProvider);
 		singleSampleForAdvancedReferencesTable.setInput(settings);
+		singleSampleForAdvancedReferencesTableBusinessFilters.clear();
+		singleSampleForAdvancedReferencesTableFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(NavigationViewsRepository.Owner.Properties.singleSampleForAdvancedReferencesTable);
 		if (eefElementEditorReadOnlyState && singleSampleForAdvancedReferencesTable.getTable().isEnabled()) {
 			singleSampleForAdvancedReferencesTable.getTable().setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/impl/DeferedReferencesTableSamplePropertiesEditionPartImpl.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/impl/DeferedReferencesTableSamplePropertiesEditionPartImpl.java
index 97f3f46..dcd1b0b 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/impl/DeferedReferencesTableSamplePropertiesEditionPartImpl.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/impl/DeferedReferencesTableSamplePropertiesEditionPartImpl.java
@@ -435,6 +435,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencesTableSampleEditor.setContentProvider(contentProvider);
 		referencesTableSampleEditor.setInput(settings);
+		referencesTableSampleEditorBusinessFilters.clear();
+		referencesTableSampleEditorFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(NavigationViewsRepository.DeferedReferencesTableSample.Properties.referencesTableSampleEditor);
 		if (eefElementEditorReadOnlyState && referencesTableSampleEditor.getTable().isEnabled()) {
 			referencesTableSampleEditor.getTable().setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/impl/OwnerPropertiesEditionPartImpl.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/impl/OwnerPropertiesEditionPartImpl.java
index b3c4dc5..c3ce94f 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/impl/OwnerPropertiesEditionPartImpl.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/parts/impl/OwnerPropertiesEditionPartImpl.java
@@ -1729,6 +1729,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		multipleSampleForReferencesTable.setContentProvider(contentProvider);
 		multipleSampleForReferencesTable.setInput(settings);
+		multipleSampleForReferencesTableBusinessFilters.clear();
+		multipleSampleForReferencesTableFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(NavigationViewsRepository.Owner.Properties.multipleSampleForReferencesTable);
 		if (eefElementEditorReadOnlyState && multipleSampleForReferencesTable.getTable().isEnabled()) {
 			multipleSampleForReferencesTable.getTable().setEnabled(false);
@@ -1798,6 +1800,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		multipleSampleForAdvancedReferencesTable.setContentProvider(contentProvider);
 		multipleSampleForAdvancedReferencesTable.setInput(settings);
+		multipleSampleForAdvancedReferencesTableBusinessFilters.clear();
+		multipleSampleForAdvancedReferencesTableFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(NavigationViewsRepository.Owner.Properties.multipleSampleForAdvancedReferencesTable);
 		if (eefElementEditorReadOnlyState && multipleSampleForAdvancedReferencesTable.getTable().isEnabled()) {
 			multipleSampleForAdvancedReferencesTable.setEnabled(false);
@@ -2063,6 +2067,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		singleSampleForReferencesTable.setContentProvider(contentProvider);
 		singleSampleForReferencesTable.setInput(settings);
+		singleSampleForReferencesTableBusinessFilters.clear();
+		singleSampleForReferencesTableFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(NavigationViewsRepository.Owner.Properties.singleSampleForReferencesTable);
 		if (eefElementEditorReadOnlyState && singleSampleForReferencesTable.getTable().isEnabled()) {
 			singleSampleForReferencesTable.getTable().setEnabled(false);
@@ -2132,6 +2138,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		singleSampleForAdvancedReferencesTable.setContentProvider(contentProvider);
 		singleSampleForAdvancedReferencesTable.setInput(settings);
+		singleSampleForAdvancedReferencesTableBusinessFilters.clear();
+		singleSampleForAdvancedReferencesTableFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(NavigationViewsRepository.Owner.Properties.singleSampleForAdvancedReferencesTable);
 		if (eefElementEditorReadOnlyState && singleSampleForAdvancedReferencesTable.getTable().isEnabled()) {
 			singleSampleForAdvancedReferencesTable.getTable().setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/providers/NamingPropertiesEditionPartProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/providers/NamingPropertiesEditionPartProvider.java
index 26630e5..f1904f7 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/providers/NamingPropertiesEditionPartProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/providers/NamingPropertiesEditionPartProvider.java
@@ -10,16 +10,16 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.navigation.providers;
 
-import org.eclipse.emf.eef.eefnr.navigation.parts.NamingViewsRepository;
-
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.EventPropertiesEditionPartForm;
-
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.EventPropertiesEditionPartImpl;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
-
+import org.eclipse.emf.eef.eefnr.navigation.parts.NamingViewsRepository;
+
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.EventPropertiesEditionPartForm;
+
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.EventPropertiesEditionPartImpl;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
+
 import org.eclipse.emf.eef.runtime.api.providers.IPropertiesEditionPartProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/providers/NavigationPropertiesEditionPartProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/providers/NavigationPropertiesEditionPartProvider.java
index 3601a78..e534afc 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/providers/NavigationPropertiesEditionPartProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/navigation/providers/NavigationPropertiesEditionPartProvider.java
@@ -10,38 +10,38 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.navigation.providers;
 
-import org.eclipse.emf.eef.eefnr.navigation.parts.NavigationViewsRepository;
-
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.AnotherSubtypePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.AttributeNavigationSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.DeferedFlatReferencesTableSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.DeferedReferencesTableSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.ElementPropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.FirstNavigationSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.NamedElementPropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.OwnerPropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.SecondNavigationSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.SmartNavigationSampleOnglet2PropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.SmartNavigationSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.navigation.parts.forms.SubtypePropertiesEditionPartForm;
-
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.AnotherSubtypePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.AttributeNavigationSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.DeferedFlatReferencesTableSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.DeferedReferencesTableSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.ElementPropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.FirstNavigationSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.NamedElementPropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.OwnerPropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.SecondNavigationSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.SmartNavigationSampleOnglet2PropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.SmartNavigationSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.navigation.parts.impl.SubtypePropertiesEditionPartImpl;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
-
+import org.eclipse.emf.eef.eefnr.navigation.parts.NavigationViewsRepository;
+
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.AnotherSubtypePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.AttributeNavigationSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.DeferedFlatReferencesTableSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.DeferedReferencesTableSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.ElementPropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.FirstNavigationSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.NamedElementPropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.OwnerPropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.SecondNavigationSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.SmartNavigationSampleOnglet2PropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.SmartNavigationSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.navigation.parts.forms.SubtypePropertiesEditionPartForm;
+
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.AnotherSubtypePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.AttributeNavigationSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.DeferedFlatReferencesTableSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.DeferedReferencesTableSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.ElementPropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.FirstNavigationSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.NamedElementPropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.OwnerPropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.SecondNavigationSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.SmartNavigationSampleOnglet2PropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.SmartNavigationSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.navigation.parts.impl.SubtypePropertiesEditionPartImpl;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
+
 import org.eclipse.emf.eef.runtime.api.providers.IPropertiesEditionPartProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/AdvancedReferencesTableSamplePropertiesEditionPartForm.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/AdvancedReferencesTableSamplePropertiesEditionPartForm.java
index ee876d4..0da5311 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/AdvancedReferencesTableSamplePropertiesEditionPartForm.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/AdvancedReferencesTableSamplePropertiesEditionPartForm.java
@@ -452,6 +452,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		advancedreferencestableRequiredProperty.setContentProvider(contentProvider);
 		advancedreferencestableRequiredProperty.setInput(settings);
+		advancedreferencestableRequiredPropertyBusinessFilters.clear();
+		advancedreferencestableRequiredPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.AdvancedReferencesTableSample.Properties.advancedreferencestableRequiredProperty);
 		if (eefElementEditorReadOnlyState && advancedreferencestableRequiredProperty.getTable().isEnabled()) {
 			advancedreferencestableRequiredProperty.setEnabled(false);
@@ -515,6 +517,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		advancedreferencestableOptionalProperty.setContentProvider(contentProvider);
 		advancedreferencestableOptionalProperty.setInput(settings);
+		advancedreferencestableOptionalPropertyBusinessFilters.clear();
+		advancedreferencestableOptionalPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.AdvancedReferencesTableSample.Properties.advancedreferencestableOptionalProperty);
 		if (eefElementEditorReadOnlyState && advancedreferencestableOptionalProperty.getTable().isEnabled()) {
 			advancedreferencestableOptionalProperty.setEnabled(false);
@@ -578,6 +582,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		advancedreferencestableROProperty.setContentProvider(contentProvider);
 		advancedreferencestableROProperty.setInput(settings);
+		advancedreferencestableROPropertyBusinessFilters.clear();
+		advancedreferencestableROPropertyFilters.clear();
 		advancedreferencestableROProperty.setEnabled(false);
 		advancedreferencestableROProperty.setToolTipText(EefnrMessages.AdvancedReferencesTableSample_ReadOnly);
 		
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/ReferencesTableSamplePropertiesEditionPartForm.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/ReferencesTableSamplePropertiesEditionPartForm.java
index 0d4db38..02ed21c 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/ReferencesTableSamplePropertiesEditionPartForm.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/ReferencesTableSamplePropertiesEditionPartForm.java
@@ -710,6 +710,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencestableRequiredProperty.setContentProvider(contentProvider);
 		referencestableRequiredProperty.setInput(settings);
+		referencestableRequiredPropertyBusinessFilters.clear();
+		referencestableRequiredPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.ReferencesTableSample.Properties.referencestableRequiredProperty);
 		if (eefElementEditorReadOnlyState && referencestableRequiredProperty.getTable().isEnabled()) {
 			referencestableRequiredProperty.getTable().setEnabled(false);
@@ -779,6 +781,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencestableOptionalProperty.setContentProvider(contentProvider);
 		referencestableOptionalProperty.setInput(settings);
+		referencestableOptionalPropertyBusinessFilters.clear();
+		referencestableOptionalPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.ReferencesTableSample.Properties.referencestableOptionalProperty);
 		if (eefElementEditorReadOnlyState && referencestableOptionalProperty.getTable().isEnabled()) {
 			referencestableOptionalProperty.getTable().setEnabled(false);
@@ -848,6 +852,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencestableROProperty.setContentProvider(contentProvider);
 		referencestableROProperty.setInput(settings);
+		referencestableROPropertyBusinessFilters.clear();
+		referencestableROPropertyFilters.clear();
 		referencestableROProperty.getTable().setEnabled(false);
 		referencestableROProperty.getTable().setToolTipText(EefnrMessages.ReferencesTableSample_ReadOnly);
 		addReferencestableROProperty.setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/TotalSamplePropertiesEditionPartForm.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/TotalSamplePropertiesEditionPartForm.java
index 5b3ff91..8164aa7 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/TotalSamplePropertiesEditionPartForm.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/forms/TotalSamplePropertiesEditionPartForm.java
@@ -2362,6 +2362,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencestableRequiredProperty.setContentProvider(contentProvider);
 		referencestableRequiredProperty.setInput(settings);
+		referencestableRequiredPropertyBusinessFilters.clear();
+		referencestableRequiredPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.TotalSample.Properties.referencestableRequiredProperty);
 		if (eefElementEditorReadOnlyState && referencestableRequiredProperty.getTable().isEnabled()) {
 			referencestableRequiredProperty.setEnabled(false);
@@ -2425,6 +2427,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencestableOptionalProperty.setContentProvider(contentProvider);
 		referencestableOptionalProperty.setInput(settings);
+		referencestableOptionalPropertyBusinessFilters.clear();
+		referencestableOptionalPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.TotalSample.Properties.referencestableOptionalProperty);
 		if (eefElementEditorReadOnlyState && referencestableOptionalProperty.getTable().isEnabled()) {
 			referencestableOptionalProperty.setEnabled(false);
@@ -2834,6 +2838,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		advancedreferencestableRequiredProperty.setContentProvider(contentProvider);
 		advancedreferencestableRequiredProperty.setInput(settings);
+		advancedreferencestableRequiredPropertyBusinessFilters.clear();
+		advancedreferencestableRequiredPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.TotalSample.Properties.advancedreferencestableRequiredProperty);
 		if (eefElementEditorReadOnlyState && advancedreferencestableRequiredProperty.getTable().isEnabled()) {
 			advancedreferencestableRequiredProperty.setEnabled(false);
@@ -2897,6 +2903,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		advancedreferencestableOptionalProperty.setContentProvider(contentProvider);
 		advancedreferencestableOptionalProperty.setInput(settings);
+		advancedreferencestableOptionalPropertyBusinessFilters.clear();
+		advancedreferencestableOptionalPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.TotalSample.Properties.advancedreferencestableOptionalProperty);
 		if (eefElementEditorReadOnlyState && advancedreferencestableOptionalProperty.getTable().isEnabled()) {
 			advancedreferencestableOptionalProperty.setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/AdvancedReferencesTableSamplePropertiesEditionPartImpl.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/AdvancedReferencesTableSamplePropertiesEditionPartImpl.java
index 6a2ec4b..6dde494 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/AdvancedReferencesTableSamplePropertiesEditionPartImpl.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/AdvancedReferencesTableSamplePropertiesEditionPartImpl.java
@@ -436,6 +436,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		advancedreferencestableRequiredProperty.setContentProvider(contentProvider);
 		advancedreferencestableRequiredProperty.setInput(settings);
+		advancedreferencestableRequiredPropertyBusinessFilters.clear();
+		advancedreferencestableRequiredPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.AdvancedReferencesTableSample.Properties.advancedreferencestableRequiredProperty);
 		if (eefElementEditorReadOnlyState && advancedreferencestableRequiredProperty.getTable().isEnabled()) {
 			advancedreferencestableRequiredProperty.setEnabled(false);
@@ -499,6 +501,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		advancedreferencestableOptionalProperty.setContentProvider(contentProvider);
 		advancedreferencestableOptionalProperty.setInput(settings);
+		advancedreferencestableOptionalPropertyBusinessFilters.clear();
+		advancedreferencestableOptionalPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.AdvancedReferencesTableSample.Properties.advancedreferencestableOptionalProperty);
 		if (eefElementEditorReadOnlyState && advancedreferencestableOptionalProperty.getTable().isEnabled()) {
 			advancedreferencestableOptionalProperty.setEnabled(false);
@@ -562,6 +566,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		advancedreferencestableROProperty.setContentProvider(contentProvider);
 		advancedreferencestableROProperty.setInput(settings);
+		advancedreferencestableROPropertyBusinessFilters.clear();
+		advancedreferencestableROPropertyFilters.clear();
 		advancedreferencestableROProperty.setEnabled(false);
 		advancedreferencestableROProperty.setToolTipText(EefnrMessages.AdvancedReferencesTableSample_ReadOnly);
 		
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/ReferencesTableSamplePropertiesEditionPartImpl.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/ReferencesTableSamplePropertiesEditionPartImpl.java
index 214be93..1eca055 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/ReferencesTableSamplePropertiesEditionPartImpl.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/ReferencesTableSamplePropertiesEditionPartImpl.java
@@ -683,6 +683,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencestableRequiredProperty.setContentProvider(contentProvider);
 		referencestableRequiredProperty.setInput(settings);
+		referencestableRequiredPropertyBusinessFilters.clear();
+		referencestableRequiredPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.ReferencesTableSample.Properties.referencestableRequiredProperty);
 		if (eefElementEditorReadOnlyState && referencestableRequiredProperty.getTable().isEnabled()) {
 			referencestableRequiredProperty.getTable().setEnabled(false);
@@ -752,6 +754,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencestableOptionalProperty.setContentProvider(contentProvider);
 		referencestableOptionalProperty.setInput(settings);
+		referencestableOptionalPropertyBusinessFilters.clear();
+		referencestableOptionalPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.ReferencesTableSample.Properties.referencestableOptionalProperty);
 		if (eefElementEditorReadOnlyState && referencestableOptionalProperty.getTable().isEnabled()) {
 			referencestableOptionalProperty.getTable().setEnabled(false);
@@ -821,6 +825,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencestableROProperty.setContentProvider(contentProvider);
 		referencestableROProperty.setInput(settings);
+		referencestableROPropertyBusinessFilters.clear();
+		referencestableROPropertyFilters.clear();
 		referencestableROProperty.getTable().setEnabled(false);
 		referencestableROProperty.getTable().setToolTipText(EefnrMessages.ReferencesTableSample_ReadOnly);
 		addReferencestableROProperty.setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/TotalSamplePropertiesEditionPartImpl.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/TotalSamplePropertiesEditionPartImpl.java
index 885f20d..40044de 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/TotalSamplePropertiesEditionPartImpl.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/parts/impl/TotalSamplePropertiesEditionPartImpl.java
@@ -2220,6 +2220,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencestableRequiredProperty.setContentProvider(contentProvider);
 		referencestableRequiredProperty.setInput(settings);
+		referencestableRequiredPropertyBusinessFilters.clear();
+		referencestableRequiredPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.TotalSample.Properties.referencestableRequiredProperty);
 		if (eefElementEditorReadOnlyState && referencestableRequiredProperty.getTable().isEnabled()) {
 			referencestableRequiredProperty.setEnabled(false);
@@ -2283,6 +2285,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		referencestableOptionalProperty.setContentProvider(contentProvider);
 		referencestableOptionalProperty.setInput(settings);
+		referencestableOptionalPropertyBusinessFilters.clear();
+		referencestableOptionalPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.TotalSample.Properties.referencestableOptionalProperty);
 		if (eefElementEditorReadOnlyState && referencestableOptionalProperty.getTable().isEnabled()) {
 			referencestableOptionalProperty.setEnabled(false);
@@ -2692,6 +2696,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		advancedreferencestableRequiredProperty.setContentProvider(contentProvider);
 		advancedreferencestableRequiredProperty.setInput(settings);
+		advancedreferencestableRequiredPropertyBusinessFilters.clear();
+		advancedreferencestableRequiredPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.TotalSample.Properties.advancedreferencestableRequiredProperty);
 		if (eefElementEditorReadOnlyState && advancedreferencestableRequiredProperty.getTable().isEnabled()) {
 			advancedreferencestableRequiredProperty.setEnabled(false);
@@ -2755,6 +2761,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		advancedreferencestableOptionalProperty.setContentProvider(contentProvider);
 		advancedreferencestableOptionalProperty.setInput(settings);
+		advancedreferencestableOptionalPropertyBusinessFilters.clear();
+		advancedreferencestableOptionalPropertyFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.TotalSample.Properties.advancedreferencestableOptionalProperty);
 		if (eefElementEditorReadOnlyState && advancedreferencestableOptionalProperty.getTable().isEnabled()) {
 			advancedreferencestableOptionalProperty.setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedEObjectFlatComboViewerSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedEObjectFlatComboViewerSamplePropertiesEditionProvider.java
index 9f490ce..3983f95 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedEObjectFlatComboViewerSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedEObjectFlatComboViewerSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.AdvancedEObjectFlatComboViewerSample;
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-
-import org.eclipse.emf.eef.eefnr.components.AdvancedEObjectFlatComboViewerSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.AdvancedEObjectFlatComboViewerSample;
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+
+import org.eclipse.emf.eef.eefnr.components.AdvancedEObjectFlatComboViewerSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedReferencesTableSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedReferencesTableSamplePropertiesEditionProvider.java
index 3ae2aef..dcee55c 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedReferencesTableSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedReferencesTableSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.AdvancedReferencesTableSample;
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-
-import org.eclipse.emf.eef.eefnr.components.AdvancedReferencesTableSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.AdvancedReferencesTableSample;
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+
+import org.eclipse.emf.eef.eefnr.components.AdvancedReferencesTableSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedTableCompositionEditorSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedTableCompositionEditorSamplePropertiesEditionProvider.java
index 588e0f7..6fb9b32 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedTableCompositionEditorSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/AdvancedTableCompositionEditorSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.AdvancedTableCompositionEditorSample;
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-
-import org.eclipse.emf.eef.eefnr.components.AdvancedTableCompositionEditorSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.AdvancedTableCompositionEditorSample;
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+
+import org.eclipse.emf.eef.eefnr.components.AdvancedTableCompositionEditorSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/CheckboxSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/CheckboxSamplePropertiesEditionProvider.java
index bfac9dd..c023428 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/CheckboxSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/CheckboxSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.CheckboxSample;
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-
-import org.eclipse.emf.eef.eefnr.components.CheckboxSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.CheckboxSample;
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+
+import org.eclipse.emf.eef.eefnr.components.CheckboxSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EMFComboViewerSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EMFComboViewerSamplePropertiesEditionProvider.java
index a8077f0..fa848ad 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EMFComboViewerSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EMFComboViewerSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EMFComboViewerSample;
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-
-import org.eclipse.emf.eef.eefnr.components.EMFComboViewerSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EMFComboViewerSample;
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+
+import org.eclipse.emf.eef.eefnr.components.EMFComboViewerSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EObjectFlatComboViewerSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EObjectFlatComboViewerSamplePropertiesEditionProvider.java
index 248864c..24205d3 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EObjectFlatComboViewerSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EObjectFlatComboViewerSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EObjectFlatComboViewerSample;
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-
-import org.eclipse.emf.eef.eefnr.components.EObjectFlatComboViewerSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EObjectFlatComboViewerSample;
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+
+import org.eclipse.emf.eef.eefnr.components.EObjectFlatComboViewerSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EReferencesViewerSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EReferencesViewerSamplePropertiesEditionProvider.java
index ccad163..545fedb 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EReferencesViewerSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EReferencesViewerSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EReferencesViewerSample;
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-
-import org.eclipse.emf.eef.eefnr.components.EReferencesViewerSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EReferencesViewerSample;
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+
+import org.eclipse.emf.eef.eefnr.components.EReferencesViewerSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EefnrEEFAdapterFactory.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EefnrEEFAdapterFactory.java
index b2c5119..bfacc67 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EefnrEEFAdapterFactory.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EefnrEEFAdapterFactory.java
@@ -10,12 +10,12 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import org.eclipse.emf.common.notify.Adapter;
-
-import org.eclipse.emf.eef.eefnr.util.EefnrAdapterFactory;
-
-import org.eclipse.emf.eef.navigation.providers.NamedElementPropertiesEditionProvider;
-
+import org.eclipse.emf.common.notify.Adapter;
+
+import org.eclipse.emf.eef.eefnr.util.EefnrAdapterFactory;
+
+import org.eclipse.emf.eef.navigation.providers.NamedElementPropertiesEditionProvider;
+
 import org.eclipse.emf.eef.references.providers.AbstractSamplePropertiesEditionProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EefnrPropertiesEditionPartProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EefnrPropertiesEditionPartProvider.java
index 29a74fa..be649d0 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EefnrPropertiesEditionPartProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/EefnrPropertiesEditionPartProvider.java
@@ -10,66 +10,66 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import org.eclipse.emf.eef.eefnr.parts.EefnrViewsRepository;
-
-import org.eclipse.emf.eef.eefnr.parts.forms.AdvancedEObjectFlatComboViewerSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.AdvancedReferencesTableSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.AdvancedTableCompositionEditorSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.CheckboxSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.EMFComboViewerSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.EObjectFlatComboViewerSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.EReferencesViewerSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.FlatReferenceTableSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.ImageViewerSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.LinkEObjectFlatComboViewerSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.LinkEReferenceViewerSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.MultiValuedEditorSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.RadioSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.ReferencesTableSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.RootPropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.SamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.SelectionDialogSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.SingleCompositionEditorSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.SingleCompositionViewerSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.TableCompositionEditorSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.TableCompositionExtensionEditorSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.TextSampleFirstTabPropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.TextSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.TextSampleSecondTabPropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.TextareaSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.parts.forms.TotalSamplePropertiesEditionPartForm;
-
-import org.eclipse.emf.eef.eefnr.parts.impl.AdvancedEObjectFlatComboViewerSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.AdvancedReferencesTableSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.AdvancedTableCompositionEditorSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.CheckboxSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.EMFComboViewerSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.EObjectFlatComboViewerSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.EReferencesViewerSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.FlatReferenceTableSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.ImageViewerSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.LinkEObjectFlatComboViewerSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.LinkEReferenceViewerSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.MultiValuedEditorSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.RadioSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.ReferencesTableSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.RootPropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.SamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.SelectionDialogSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.SingleCompositionEditorSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.SingleCompositionViewerSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.TableCompositionEditorSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.TableCompositionExtensionEditorSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.TextSampleFirstTabPropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.TextSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.TextSampleSecondTabPropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.TextareaSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.parts.impl.TotalSamplePropertiesEditionPartImpl;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
-
+import org.eclipse.emf.eef.eefnr.parts.EefnrViewsRepository;
+
+import org.eclipse.emf.eef.eefnr.parts.forms.AdvancedEObjectFlatComboViewerSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.AdvancedReferencesTableSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.AdvancedTableCompositionEditorSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.CheckboxSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.EMFComboViewerSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.EObjectFlatComboViewerSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.EReferencesViewerSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.FlatReferenceTableSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.ImageViewerSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.LinkEObjectFlatComboViewerSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.LinkEReferenceViewerSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.MultiValuedEditorSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.RadioSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.ReferencesTableSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.RootPropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.SamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.SelectionDialogSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.SingleCompositionEditorSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.SingleCompositionViewerSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.TableCompositionEditorSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.TableCompositionExtensionEditorSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.TextSampleFirstTabPropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.TextSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.TextSampleSecondTabPropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.TextareaSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.parts.forms.TotalSamplePropertiesEditionPartForm;
+
+import org.eclipse.emf.eef.eefnr.parts.impl.AdvancedEObjectFlatComboViewerSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.AdvancedReferencesTableSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.AdvancedTableCompositionEditorSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.CheckboxSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.EMFComboViewerSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.EObjectFlatComboViewerSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.EReferencesViewerSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.FlatReferenceTableSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.ImageViewerSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.LinkEObjectFlatComboViewerSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.LinkEReferenceViewerSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.MultiValuedEditorSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.RadioSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.ReferencesTableSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.RootPropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.SamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.SelectionDialogSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.SingleCompositionEditorSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.SingleCompositionViewerSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.TableCompositionEditorSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.TableCompositionExtensionEditorSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.TextSampleFirstTabPropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.TextSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.TextSampleSecondTabPropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.TextareaSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.parts.impl.TotalSamplePropertiesEditionPartImpl;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
+
 import org.eclipse.emf.eef.runtime.api.providers.IPropertiesEditionPartProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/FlatReferenceTableSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/FlatReferenceTableSamplePropertiesEditionProvider.java
index 2ee93f4..ff4716c 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/FlatReferenceTableSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/FlatReferenceTableSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.FlatReferencesTableSample;
-
-import org.eclipse.emf.eef.eefnr.components.FlatReferenceTableSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.FlatReferencesTableSample;
+
+import org.eclipse.emf.eef.eefnr.components.FlatReferenceTableSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/ImageViewerSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/ImageViewerSamplePropertiesEditionProvider.java
index 34c5878..353bf0d 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/ImageViewerSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/ImageViewerSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.ImageViewerSample;
-
-import org.eclipse.emf.eef.eefnr.components.ImageViewerSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.ImageViewerSample;
+
+import org.eclipse.emf.eef.eefnr.components.ImageViewerSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/LinkEObjectFlatComboViewerSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/LinkEObjectFlatComboViewerSamplePropertiesEditionProvider.java
index 7866cf9..bcba41e 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/LinkEObjectFlatComboViewerSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/LinkEObjectFlatComboViewerSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.LinkEObjectFlatComboViewerSample;
-
-import org.eclipse.emf.eef.eefnr.components.LinkEObjectFlatComboViewerSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.LinkEObjectFlatComboViewerSample;
+
+import org.eclipse.emf.eef.eefnr.components.LinkEObjectFlatComboViewerSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/LinkEReferenceViewerSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/LinkEReferenceViewerSamplePropertiesEditionProvider.java
index 701efd9..55a846c 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/LinkEReferenceViewerSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/LinkEReferenceViewerSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.LinkEReferenceViewerSample;
-
-import org.eclipse.emf.eef.eefnr.components.LinkEReferenceViewerSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.LinkEReferenceViewerSample;
+
+import org.eclipse.emf.eef.eefnr.components.LinkEReferenceViewerSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/MultiValuedEditorSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/MultiValuedEditorSamplePropertiesEditionProvider.java
index 0c56fe2..a883ea8 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/MultiValuedEditorSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/MultiValuedEditorSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.MultiValuedEditorSample;
-
-import org.eclipse.emf.eef.eefnr.components.MultiValuedEditorSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.MultiValuedEditorSample;
+
+import org.eclipse.emf.eef.eefnr.components.MultiValuedEditorSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/RadioSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/RadioSamplePropertiesEditionProvider.java
index 22b69e0..5d06e99 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/RadioSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/RadioSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.RadioSample;
-
-import org.eclipse.emf.eef.eefnr.components.RadioSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.RadioSample;
+
+import org.eclipse.emf.eef.eefnr.components.RadioSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/ReferencesTableSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/ReferencesTableSamplePropertiesEditionProvider.java
index 600d5ae..2867006 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/ReferencesTableSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/ReferencesTableSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.ReferencesTableSample;
-
-import org.eclipse.emf.eef.eefnr.components.ReferencesTableSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.ReferencesTableSample;
+
+import org.eclipse.emf.eef.eefnr.components.ReferencesTableSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/RootPropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/RootPropertiesEditionProvider.java
index 1780676..0b978c4 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/RootPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/RootPropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.Root;
-
-import org.eclipse.emf.eef.eefnr.components.RootPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.Root;
+
+import org.eclipse.emf.eef.eefnr.components.RootPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SamplePropertiesEditionProvider.java
index 6d73c53..bdedcbc 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.Sample;
-
-import org.eclipse.emf.eef.eefnr.components.SamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.Sample;
+
+import org.eclipse.emf.eef.eefnr.components.SamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SelectionDialogSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SelectionDialogSamplePropertiesEditionProvider.java
index dd3097b..d841969 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SelectionDialogSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SelectionDialogSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.SelectionDialogSample;
-
-import org.eclipse.emf.eef.eefnr.components.SelectionDialogSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.SelectionDialogSample;
+
+import org.eclipse.emf.eef.eefnr.components.SelectionDialogSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SingleCompositionEditorSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SingleCompositionEditorSamplePropertiesEditionProvider.java
index d420b2e..744817a 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SingleCompositionEditorSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SingleCompositionEditorSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.SingleCompositionEditorSample;
-
-import org.eclipse.emf.eef.eefnr.components.SingleCompositionEditorSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.SingleCompositionEditorSample;
+
+import org.eclipse.emf.eef.eefnr.components.SingleCompositionEditorSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SingleCompositionViewerSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SingleCompositionViewerSamplePropertiesEditionProvider.java
index 42326b3..07bcaee 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SingleCompositionViewerSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/SingleCompositionViewerSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.SingleCompositionViewerSample;
-
-import org.eclipse.emf.eef.eefnr.components.SingleCompositionViewerSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.SingleCompositionViewerSample;
+
+import org.eclipse.emf.eef.eefnr.components.SingleCompositionViewerSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TableCompositionEditorSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TableCompositionEditorSamplePropertiesEditionProvider.java
index c1b6ca7..95da547 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TableCompositionEditorSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TableCompositionEditorSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.TableCompositionEditorSample;
-
-import org.eclipse.emf.eef.eefnr.components.TableCompositionEditorSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.TableCompositionEditorSample;
+
+import org.eclipse.emf.eef.eefnr.components.TableCompositionEditorSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TableCompositionExtensionEditorSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TableCompositionExtensionEditorSamplePropertiesEditionProvider.java
index 21b9eb4..53dfdb5 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TableCompositionExtensionEditorSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TableCompositionExtensionEditorSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.TableCompositionExtensionEditorSample;
-
-import org.eclipse.emf.eef.eefnr.components.TableCompositionExtensionEditorSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.TableCompositionExtensionEditorSample;
+
+import org.eclipse.emf.eef.eefnr.components.TableCompositionExtensionEditorSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextSamplePropertiesEditionProvider.java
index 4d4fb9f..2e4a0ce 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.TextSample;
-
-import org.eclipse.emf.eef.eefnr.components.TextSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.TextSample;
+
+import org.eclipse.emf.eef.eefnr.components.TextSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextSampleWithTwoTabsPropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextSampleWithTwoTabsPropertiesEditionProvider.java
index 914479b..da61e1c 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextSampleWithTwoTabsPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextSampleWithTwoTabsPropertiesEditionProvider.java
@@ -10,27 +10,27 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.TextSampleWithTwoTabs;
-
-import org.eclipse.emf.eef.eefnr.components.TextSampleWithTwoTabsPropertiesEditionComponent;
-import org.eclipse.emf.eef.eefnr.components.TextSampleWithTwoTabsTextSampleFirstTabPropertiesEditionComponent;
-import org.eclipse.emf.eef.eefnr.components.TextSampleWithTwoTabsTextSampleSecondTabPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.TextSampleWithTwoTabs;
+
+import org.eclipse.emf.eef.eefnr.components.TextSampleWithTwoTabsPropertiesEditionComponent;
+import org.eclipse.emf.eef.eefnr.components.TextSampleWithTwoTabsTextSampleFirstTabPropertiesEditionComponent;
+import org.eclipse.emf.eef.eefnr.components.TextSampleWithTwoTabsTextSampleSecondTabPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextareaSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextareaSamplePropertiesEditionProvider.java
index a874018..1d9b81e 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextareaSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TextareaSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.TextareaSample;
-
-import org.eclipse.emf.eef.eefnr.components.TextareaSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.TextareaSample;
+
+import org.eclipse.emf.eef.eefnr.components.TextareaSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TotalSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TotalSamplePropertiesEditionProvider.java
index 954fe97..0f444b8 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TotalSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/providers/TotalSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.TotalSample;
-
-import org.eclipse.emf.eef.eefnr.components.TotalSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.TotalSample;
+
+import org.eclipse.emf.eef.eefnr.components.TotalSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/parts/forms/ReferenceEnabledSamplePropertiesEditionPartForm.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/parts/forms/ReferenceEnabledSamplePropertiesEditionPartForm.java
index e9b7033..16a2e12 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/parts/forms/ReferenceEnabledSamplePropertiesEditionPartForm.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/parts/forms/ReferenceEnabledSamplePropertiesEditionPartForm.java
@@ -289,6 +289,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		reference.setContentProvider(contentProvider);
 		reference.setInput(settings);
+		referenceBusinessFilters.clear();
+		referenceFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(ReferencesViewsRepository.ReferenceEnabledSample.Properties.reference);
 		if (eefElementEditorReadOnlyState && reference.getTable().isEnabled()) {
 			reference.setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/parts/impl/ReferenceEnabledSamplePropertiesEditionPartImpl.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/parts/impl/ReferenceEnabledSamplePropertiesEditionPartImpl.java
index 7348d51..68d6e93 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/parts/impl/ReferenceEnabledSamplePropertiesEditionPartImpl.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/parts/impl/ReferenceEnabledSamplePropertiesEditionPartImpl.java
@@ -277,6 +277,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		reference.setContentProvider(contentProvider);
 		reference.setInput(settings);
+		referenceBusinessFilters.clear();
+		referenceFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(ReferencesViewsRepository.ReferenceEnabledSample.Properties.reference);
 		if (eefElementEditorReadOnlyState && reference.getTable().isEnabled()) {
 			reference.setEnabled(false);
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/providers/ReferencesPropertiesEditionPartProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/providers/ReferencesPropertiesEditionPartProvider.java
index 6f551b1..9e8fda7 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/providers/ReferencesPropertiesEditionPartProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnr/references/providers/ReferencesPropertiesEditionPartProvider.java
@@ -10,20 +10,20 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnr.references.providers;
 
-import org.eclipse.emf.eef.eefnr.references.parts.ReferencesViewsRepository;
-
-import org.eclipse.emf.eef.eefnr.references.parts.forms.AbstractEnabledSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.references.parts.forms.AbstractSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnr.references.parts.forms.ReferenceEnabledSamplePropertiesEditionPartForm;
-
-import org.eclipse.emf.eef.eefnr.references.parts.impl.AbstractEnabledSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.references.parts.impl.AbstractSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnr.references.parts.impl.ReferenceEnabledSamplePropertiesEditionPartImpl;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
-
+import org.eclipse.emf.eef.eefnr.references.parts.ReferencesViewsRepository;
+
+import org.eclipse.emf.eef.eefnr.references.parts.forms.AbstractEnabledSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.references.parts.forms.AbstractSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnr.references.parts.forms.ReferenceEnabledSamplePropertiesEditionPartForm;
+
+import org.eclipse.emf.eef.eefnr.references.parts.impl.AbstractEnabledSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.references.parts.impl.AbstractSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnr.references.parts.impl.ReferenceEnabledSamplePropertiesEditionPartImpl;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
+
 import org.eclipse.emf.eef.runtime.api.providers.IPropertiesEditionPartProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/CheckBoxExtendedEditorSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/CheckBoxExtendedEditorSamplePropertiesEditionProvider.java
index 2717d3d..77350d2 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/CheckBoxExtendedEditorSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/CheckBoxExtendedEditorSamplePropertiesEditionProvider.java
@@ -10,28 +10,28 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnrext.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnrext.CheckBoxExtendedEditorSample;
-import org.eclipse.emf.eef.eefnrext.EefnrextPackage;
-
-import org.eclipse.emf.eef.eefnrext.components.CheckBoxExtendedEditorSampleBasePropertiesEditionComponent;
-import org.eclipse.emf.eef.eefnrext.components.CheckBoxExtendedEditorSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.references.components.AbstractSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnrext.CheckBoxExtendedEditorSample;
+import org.eclipse.emf.eef.eefnrext.EefnrextPackage;
+
+import org.eclipse.emf.eef.eefnrext.components.CheckBoxExtendedEditorSampleBasePropertiesEditionComponent;
+import org.eclipse.emf.eef.eefnrext.components.CheckBoxExtendedEditorSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.references.components.AbstractSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/EefnrextEEFAdapterFactory.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/EefnrextEEFAdapterFactory.java
index ce1f75b..f2c702f 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/EefnrextEEFAdapterFactory.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/EefnrextEEFAdapterFactory.java
@@ -10,15 +10,15 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnrext.providers;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-
-import org.eclipse.emf.eef.eefnrext.util.EefnrextAdapterFactory;
-
-import org.eclipse.emf.eef.references.providers.AbstractSamplePropertiesEditionProvider;
-
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+
+import org.eclipse.emf.eef.eefnrext.util.EefnrextAdapterFactory;
+
+import org.eclipse.emf.eef.references.providers.AbstractSamplePropertiesEditionProvider;
+
 import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/EefnrextPropertiesEditionPartProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/EefnrextPropertiesEditionPartProvider.java
index 201a4f2..f4c0c20 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/EefnrextPropertiesEditionPartProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/EefnrextPropertiesEditionPartProvider.java
@@ -10,22 +10,22 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnrext.providers;
 
-import org.eclipse.emf.eef.eefnrext.parts.EefnrextViewsRepository;
-
-import org.eclipse.emf.eef.eefnrext.parts.forms.CheckBoxExtendedEditorSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnrext.parts.forms.FlatReferenceExtendedEditorSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnrext.parts.forms.SecondFlatReferenceExtendedEditorSamplePropertiesEditionPartForm;
-import org.eclipse.emf.eef.eefnrext.parts.forms.TableCompositionTargetExtensionEditorSamplePropertiesEditionPartForm;
-
-import org.eclipse.emf.eef.eefnrext.parts.impl.CheckBoxExtendedEditorSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnrext.parts.impl.FlatReferenceExtendedEditorSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnrext.parts.impl.SecondFlatReferenceExtendedEditorSamplePropertiesEditionPartImpl;
-import org.eclipse.emf.eef.eefnrext.parts.impl.TableCompositionTargetExtensionEditorSamplePropertiesEditionPartImpl;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
-
+import org.eclipse.emf.eef.eefnrext.parts.EefnrextViewsRepository;
+
+import org.eclipse.emf.eef.eefnrext.parts.forms.CheckBoxExtendedEditorSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnrext.parts.forms.FlatReferenceExtendedEditorSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnrext.parts.forms.SecondFlatReferenceExtendedEditorSamplePropertiesEditionPartForm;
+import org.eclipse.emf.eef.eefnrext.parts.forms.TableCompositionTargetExtensionEditorSamplePropertiesEditionPartForm;
+
+import org.eclipse.emf.eef.eefnrext.parts.impl.CheckBoxExtendedEditorSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnrext.parts.impl.FlatReferenceExtendedEditorSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnrext.parts.impl.SecondFlatReferenceExtendedEditorSamplePropertiesEditionPartImpl;
+import org.eclipse.emf.eef.eefnrext.parts.impl.TableCompositionTargetExtensionEditorSamplePropertiesEditionPartImpl;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart;
+
 import org.eclipse.emf.eef.runtime.api.providers.IPropertiesEditionPartProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/FlatReferenceExtendedEditorSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/FlatReferenceExtendedEditorSamplePropertiesEditionProvider.java
index 324a45f..68258f7 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/FlatReferenceExtendedEditorSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/FlatReferenceExtendedEditorSamplePropertiesEditionProvider.java
@@ -10,29 +10,29 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnrext.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnrext.EefnrextPackage;
-import org.eclipse.emf.eef.eefnrext.FlatReferenceExtendedEditorSample;
-
-import org.eclipse.emf.eef.eefnrext.components.CheckBoxExtendedEditorSampleBasePropertiesEditionComponent;
-import org.eclipse.emf.eef.eefnrext.components.CheckBoxExtendedEditorSamplePropertiesEditionComponent;
-import org.eclipse.emf.eef.eefnrext.components.FlatReferenceExtendedEditorSampleBasePropertiesEditionComponent;
-import org.eclipse.emf.eef.eefnrext.components.FlatReferenceExtendedEditorSamplePropertiesEditionComponent;
-import org.eclipse.emf.eef.eefnrext.components.FlatReferenceExtendedEditorSampleSecondFlatReferenceExtendedEditorSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnrext.EefnrextPackage;
+import org.eclipse.emf.eef.eefnrext.FlatReferenceExtendedEditorSample;
+
+import org.eclipse.emf.eef.eefnrext.components.CheckBoxExtendedEditorSampleBasePropertiesEditionComponent;
+import org.eclipse.emf.eef.eefnrext.components.CheckBoxExtendedEditorSamplePropertiesEditionComponent;
+import org.eclipse.emf.eef.eefnrext.components.FlatReferenceExtendedEditorSampleBasePropertiesEditionComponent;
+import org.eclipse.emf.eef.eefnrext.components.FlatReferenceExtendedEditorSamplePropertiesEditionComponent;
+import org.eclipse.emf.eef.eefnrext.components.FlatReferenceExtendedEditorSampleSecondFlatReferenceExtendedEditorSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/TableCompositionTargetExtensionEditorSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/TableCompositionTargetExtensionEditorSamplePropertiesEditionProvider.java
index 8bec055..7bf2393 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/TableCompositionTargetExtensionEditorSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/eefnrext/providers/TableCompositionTargetExtensionEditorSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.eefnrext.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnrext.EefnrextPackage;
-import org.eclipse.emf.eef.eefnrext.TableCompositionTargetExtensionEditorSample;
-
-import org.eclipse.emf.eef.eefnrext.components.TableCompositionTargetExtensionEditorSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnrext.EefnrextPackage;
+import org.eclipse.emf.eef.eefnrext.TableCompositionTargetExtensionEditorSample;
+
+import org.eclipse.emf.eef.eefnrext.components.TableCompositionTargetExtensionEditorSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceOwnerSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceOwnerSamplePropertiesEditionProvider.java
index 263f9f7..5978d7d 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceOwnerSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceOwnerSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.filters.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.filters.ConcreteReferenceOwnerSample;
-import org.eclipse.emf.eef.eefnr.filters.FiltersPackage;
-
-import org.eclipse.emf.eef.filters.components.ConcreteReferenceOwnerSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.filters.ConcreteReferenceOwnerSample;
+import org.eclipse.emf.eef.eefnr.filters.FiltersPackage;
+
+import org.eclipse.emf.eef.filters.components.ConcreteReferenceOwnerSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceTargetSample1PropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceTargetSample1PropertiesEditionProvider.java
index b74d1d3..c1dec88 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceTargetSample1PropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceTargetSample1PropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.filters.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.filters.ConcreteReferenceTargetSample1;
-import org.eclipse.emf.eef.eefnr.filters.FiltersPackage;
-
-import org.eclipse.emf.eef.filters.components.ConcreteReferenceTargetSample1PropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.filters.ConcreteReferenceTargetSample1;
+import org.eclipse.emf.eef.eefnr.filters.FiltersPackage;
+
+import org.eclipse.emf.eef.filters.components.ConcreteReferenceTargetSample1PropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceTargetSample2PropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceTargetSample2PropertiesEditionProvider.java
index 3f43719..5ca17c2 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceTargetSample2PropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/ConcreteReferenceTargetSample2PropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.filters.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.filters.ConcreteReferenceTargetSample2;
-import org.eclipse.emf.eef.eefnr.filters.FiltersPackage;
-
-import org.eclipse.emf.eef.filters.components.ConcreteReferenceTargetSample2PropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.filters.ConcreteReferenceTargetSample2;
+import org.eclipse.emf.eef.eefnr.filters.FiltersPackage;
+
+import org.eclipse.emf.eef.filters.components.ConcreteReferenceTargetSample2PropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/FiltersEEFAdapterFactory.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/FiltersEEFAdapterFactory.java
index 4270cd1..2e158bd 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/FiltersEEFAdapterFactory.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/filters/providers/FiltersEEFAdapterFactory.java
@@ -10,10 +10,10 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.filters.providers;
 
-import org.eclipse.emf.common.notify.Adapter;
-
-import org.eclipse.emf.eef.eefnr.filters.util.FiltersAdapterFactory;
-
+import org.eclipse.emf.common.notify.Adapter;
+
+import org.eclipse.emf.eef.eefnr.filters.util.FiltersAdapterFactory;
+
 import org.eclipse.emf.eef.references.providers.AbstractSamplePropertiesEditionProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/naming/providers/EventPropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/naming/providers/EventPropertiesEditionProvider.java
index 2efb710..1aafa89 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/naming/providers/EventPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/naming/providers/EventPropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.naming.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.naming.CustomNamingPackage;
-import org.eclipse.emf.eef.eefnr.naming.Event;
-
-import org.eclipse.emf.eef.naming.components.EventPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.naming.CustomNamingPackage;
+import org.eclipse.emf.eef.eefnr.naming.Event;
+
+import org.eclipse.emf.eef.naming.components.EventPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/naming/providers/NamingEEFAdapterFactory.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/naming/providers/NamingEEFAdapterFactory.java
index 9b26ea2..4179cca 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/naming/providers/NamingEEFAdapterFactory.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/naming/providers/NamingEEFAdapterFactory.java
@@ -10,10 +10,10 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.naming.providers;
 
-import org.eclipse.emf.common.notify.Adapter;
-
-import org.eclipse.emf.eef.eefnr.naming.util.CustomNamingAdapterFactory;
-
+import org.eclipse.emf.common.notify.Adapter;
+
+import org.eclipse.emf.eef.eefnr.naming.util.CustomNamingAdapterFactory;
+
 import org.eclipse.emf.eef.references.providers.AbstractSamplePropertiesEditionProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/components/SmartModelNavigationSampleSmartNavigationSamplePropertiesEditionComponent.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/components/SmartModelNavigationSampleSmartNavigationSamplePropertiesEditionComponent.java
index a1ed085..ab42630 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/components/SmartModelNavigationSampleSmartNavigationSamplePropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/components/SmartModelNavigationSampleSmartNavigationSamplePropertiesEditionComponent.java
@@ -399,41 +399,41 @@
 		if (editingPart != null && key == partKey) {
 			editingPart.setContext(elt, allResource);
 			if (editingPart instanceof CompositePropertiesEditionPart) {
-				((CompositePropertiesEditionPart) editingPart).getSettings().add(firstModelNavigationSingleValueSettings);
-				((CompositePropertiesEditionPart) editingPart).getSettings().add(firstModelNavigationMultiValueSettings);
-				((CompositePropertiesEditionPart) editingPart).getSettings().add(secondMNSingleValueWithFirstMNSingleValueSettings);
-				((CompositePropertiesEditionPart) editingPart).getSettings().add(secondMNSingleValueWithFirstMNMultiValueSettings);
-				((CompositePropertiesEditionPart) editingPart).getSettings().add(secondMNMultiValueWithFirstMNSingleValueSettings);
-				((CompositePropertiesEditionPart) editingPart).getSettings().add(secondMNMultiValueWithFirstMNMultiValueSettings);
-				((CompositePropertiesEditionPart) editingPart).getSettings().add(secondMNMultiValueWithFirstMNMultiValueWithFilterSettings);
-			}
+		((CompositePropertiesEditionPart) editingPart).getSettings().add(firstModelNavigationSingleValueSettings);
+		((CompositePropertiesEditionPart) editingPart).getSettings().add(firstModelNavigationMultiValueSettings);
+		((CompositePropertiesEditionPart) editingPart).getSettings().add(secondMNSingleValueWithFirstMNSingleValueSettings);
+		((CompositePropertiesEditionPart) editingPart).getSettings().add(secondMNSingleValueWithFirstMNMultiValueSettings);
+		((CompositePropertiesEditionPart) editingPart).getSettings().add(secondMNMultiValueWithFirstMNSingleValueSettings);
+		((CompositePropertiesEditionPart) editingPart).getSettings().add(secondMNMultiValueWithFirstMNMultiValueSettings);
+		((CompositePropertiesEditionPart) editingPart).getSettings().add(secondMNMultiValueWithFirstMNMultiValueWithFilterSettings);
+	}
 			final SmartModelNavigationSample smartModelNavigationSample = (SmartModelNavigationSample)elt;
 			final SmartNavigationSamplePropertiesEditionPart smartNavigationSamplePart = (SmartNavigationSamplePropertiesEditionPart)editingPart;
 			// init values
 			if (isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.name))
-				smartNavigationSamplePart.setName(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, smartModelNavigationSample.getName()));
-			
+		smartNavigationSamplePart.setName(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, smartModelNavigationSample.getName()));
+	
 			if (firstModelNavigationSingleValueSettings.getValue() != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.firstModelNavigationSingleValue))
-				smartNavigationSamplePart.setFirstModelNavigationSingleValue(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, firstModelNavigationSingleValueSettings.getValue()));
-			
+		smartNavigationSamplePart.setFirstModelNavigationSingleValue(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, firstModelNavigationSingleValueSettings.getValue()));
+	
 			if (firstModelNavigationMultiValueSettings.getValue() != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.firstModelNavigationMultiValue))
-				smartNavigationSamplePart.setFirstModelNavigationMultiValue(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, firstModelNavigationMultiValueSettings.getValue()));
-			
+		smartNavigationSamplePart.setFirstModelNavigationMultiValue(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, firstModelNavigationMultiValueSettings.getValue()));
+	
 			if (secondMNSingleValueWithFirstMNSingleValueSettings.getValue() != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationSingleValue))
-				smartNavigationSamplePart.setSecondModelNavigationSingleValue(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, secondMNSingleValueWithFirstMNSingleValueSettings.getValue()));
-			
+		smartNavigationSamplePart.setSecondModelNavigationSingleValue(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, secondMNSingleValueWithFirstMNSingleValueSettings.getValue()));
+	
 			if (secondMNSingleValueWithFirstMNMultiValueSettings.getValue() != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValue))
-				smartNavigationSamplePart.setSecondModelNavigationMultiValue(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, secondMNSingleValueWithFirstMNMultiValueSettings.getValue()));
-			
+		smartNavigationSamplePart.setSecondModelNavigationMultiValue(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, secondMNSingleValueWithFirstMNMultiValueSettings.getValue()));
+	
 			if (secondMNMultiValueWithFirstMNSingleValueSettings.getValue() != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationSingleValue2))
-				smartNavigationSamplePart.setSecondModelNavigationSingleValue2(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, secondMNMultiValueWithFirstMNSingleValueSettings.getValue()));
-			
+		smartNavigationSamplePart.setSecondModelNavigationSingleValue2(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, secondMNMultiValueWithFirstMNSingleValueSettings.getValue()));
+	
 			if (secondMNMultiValueWithFirstMNMultiValueSettings.getValue() != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValue2))
-				smartNavigationSamplePart.setSecondModelNavigationMultiValue2(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, secondMNMultiValueWithFirstMNMultiValueSettings.getValue()));
-			
+		smartNavigationSamplePart.setSecondModelNavigationMultiValue2(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, secondMNMultiValueWithFirstMNMultiValueSettings.getValue()));
+	
 			if (secondMNMultiValueWithFirstMNMultiValueWithFilterSettings.getValue() != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValueFilter))
-				smartNavigationSamplePart.setSecondModelNavigationMultiValueFilter(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, secondMNMultiValueWithFirstMNMultiValueWithFilterSettings.getValue()));
-			
+		smartNavigationSamplePart.setSecondModelNavigationMultiValueFilter(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, secondMNMultiValueWithFirstMNMultiValueWithFilterSettings.getValue()));
+	
 			// init filters
 			
 			
@@ -543,61 +543,61 @@
 		if (editingPart.isVisible()) {
 			SmartNavigationSamplePropertiesEditionPart smartNavigationSamplePart = (SmartNavigationSamplePropertiesEditionPart)editingPart;
 			if (EefnrPackage.eINSTANCE.getAbstractSample_Name().equals(msg.getFeature()) && msg.getNotifier().equals(semanticObject) && smartNavigationSamplePart != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.name)) {
-				if (msg.getNewValue() != null) {
-					smartNavigationSamplePart.setName(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
-				} else {
-					smartNavigationSamplePart.setName("");
-				}
-			}
+		if (msg.getNewValue() != null) {
+			smartNavigationSamplePart.setName(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
+		} else {
+			smartNavigationSamplePart.setName("");
+		}
+	}
 			if (!(msg.getNewValue() instanceof EObject) && firstModelNavigationSingleValueSettings.isAffectingEvent(msg) && smartNavigationSamplePart != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.firstModelNavigationSingleValue)) {
-				if (msg.getNewValue() != null) {
-					smartNavigationSamplePart.setFirstModelNavigationSingleValue(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
-				} else {
-					smartNavigationSamplePart.setFirstModelNavigationSingleValue("");
-				}
-			}
+		if (msg.getNewValue() != null) {
+			smartNavigationSamplePart.setFirstModelNavigationSingleValue(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
+		} else {
+			smartNavigationSamplePart.setFirstModelNavigationSingleValue("");
+		}
+	}
 			if (!(msg.getNewValue() instanceof EObject) && firstModelNavigationMultiValueSettings.isAffectingEvent(msg) && smartNavigationSamplePart != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.firstModelNavigationMultiValue)) {
-				if (msg.getNewValue() != null) {
-					smartNavigationSamplePart.setFirstModelNavigationMultiValue(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
-				} else {
-					smartNavigationSamplePart.setFirstModelNavigationMultiValue("");
-				}
-			}
+		if (msg.getNewValue() != null) {
+			smartNavigationSamplePart.setFirstModelNavigationMultiValue(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
+		} else {
+			smartNavigationSamplePart.setFirstModelNavigationMultiValue("");
+		}
+	}
 			if (!(msg.getNewValue() instanceof EObject) && secondMNSingleValueWithFirstMNSingleValueSettings.isAffectingEvent(msg) && smartNavigationSamplePart != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationSingleValue)) {
-				if (msg.getNewValue() != null) {
-					smartNavigationSamplePart.setSecondModelNavigationSingleValue(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
-				} else {
-					smartNavigationSamplePart.setSecondModelNavigationSingleValue("");
-				}
-			}
+		if (msg.getNewValue() != null) {
+			smartNavigationSamplePart.setSecondModelNavigationSingleValue(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
+		} else {
+			smartNavigationSamplePart.setSecondModelNavigationSingleValue("");
+		}
+	}
 			if (!(msg.getNewValue() instanceof EObject) && secondMNSingleValueWithFirstMNMultiValueSettings.isAffectingEvent(msg) && smartNavigationSamplePart != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValue)) {
-				if (msg.getNewValue() != null) {
-					smartNavigationSamplePart.setSecondModelNavigationMultiValue(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
-				} else {
-					smartNavigationSamplePart.setSecondModelNavigationMultiValue("");
-				}
-			}
+		if (msg.getNewValue() != null) {
+			smartNavigationSamplePart.setSecondModelNavigationMultiValue(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
+		} else {
+			smartNavigationSamplePart.setSecondModelNavigationMultiValue("");
+		}
+	}
 			if (!(msg.getNewValue() instanceof EObject) && secondMNMultiValueWithFirstMNSingleValueSettings.isAffectingEvent(msg) && smartNavigationSamplePart != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationSingleValue2)) {
-				if (msg.getNewValue() != null) {
-					smartNavigationSamplePart.setSecondModelNavigationSingleValue2(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
-				} else {
-					smartNavigationSamplePart.setSecondModelNavigationSingleValue2("");
-				}
-			}
+		if (msg.getNewValue() != null) {
+			smartNavigationSamplePart.setSecondModelNavigationSingleValue2(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
+		} else {
+			smartNavigationSamplePart.setSecondModelNavigationSingleValue2("");
+		}
+	}
 			if (!(msg.getNewValue() instanceof EObject) && secondMNMultiValueWithFirstMNMultiValueSettings.isAffectingEvent(msg) && smartNavigationSamplePart != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValue2)) {
-				if (msg.getNewValue() != null) {
-					smartNavigationSamplePart.setSecondModelNavigationMultiValue2(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
-				} else {
-					smartNavigationSamplePart.setSecondModelNavigationMultiValue2("");
-				}
-			}
+		if (msg.getNewValue() != null) {
+			smartNavigationSamplePart.setSecondModelNavigationMultiValue2(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
+		} else {
+			smartNavigationSamplePart.setSecondModelNavigationMultiValue2("");
+		}
+	}
 			if (!(msg.getNewValue() instanceof EObject) && secondMNMultiValueWithFirstMNMultiValueWithFilterSettings.isAffectingEvent(msg) && smartNavigationSamplePart != null && isAccessible(NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValueFilter)) {
-				if (msg.getNewValue() != null) {
-					smartNavigationSamplePart.setSecondModelNavigationMultiValueFilter(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
-				} else {
-					smartNavigationSamplePart.setSecondModelNavigationMultiValueFilter("");
-				}
-			}
+		if (msg.getNewValue() != null) {
+			smartNavigationSamplePart.setSecondModelNavigationMultiValueFilter(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
+		} else {
+			smartNavigationSamplePart.setSecondModelNavigationMultiValueFilter("");
+		}
+	}
 			
 		}
 	}
@@ -617,98 +617,98 @@
 			NavigationPackage.eINSTANCE.getSmartModelNavigationSample_SeveralFirstModelNavigation2(),
 			EefnrPackage.eINSTANCE.getAbstractSample_Name(),
 			NavigationPackage.eINSTANCE.getSmartModelNavigationSample_FirstModelNavigation(),
-					NavigationPackage.eINSTANCE.getFirstModelNavigation_SecondModelNavigation(),
+			NavigationPackage.eINSTANCE.getFirstModelNavigation_SecondModelNavigation(),
 			EefnrPackage.eINSTANCE.getAbstractSample_Name(),
 			NavigationPackage.eINSTANCE.getSmartModelNavigationSample_FirstModelNavigation(),
-					NavigationPackage.eINSTANCE.getFirstModelNavigation_SeveralSecondModelNavigation(),
+			NavigationPackage.eINSTANCE.getFirstModelNavigation_SeveralSecondModelNavigation(),
 			EefnrPackage.eINSTANCE.getAbstractSample_Name(),
 			NavigationPackage.eINSTANCE.getSmartModelNavigationSample_SeveralFirstModelNavigation(),
-					NavigationPackage.eINSTANCE.getFirstModelNavigation_SecondModelNavigation(),
+			NavigationPackage.eINSTANCE.getFirstModelNavigation_SecondModelNavigation(),
 			EefnrPackage.eINSTANCE.getAbstractSample_Name(),
 			NavigationPackage.eINSTANCE.getSmartModelNavigationSample_SeveralFirstModelNavigation(),
-					NavigationPackage.eINSTANCE.getFirstModelNavigation_SeveralSecondModelNavigation(),
+			NavigationPackage.eINSTANCE.getFirstModelNavigation_SeveralSecondModelNavigation(),
 			EefnrPackage.eINSTANCE.getAbstractSample_Name(),
 			NavigationPackage.eINSTANCE.getSmartModelNavigationSample_SeveralFirstModelNavigation(),
-					NavigationPackage.eINSTANCE.getFirstModelNavigation_SeveralSecondModelNavigation()		);
+			NavigationPackage.eINSTANCE.getFirstModelNavigation_SeveralSecondModelNavigation()		);
 		return new NotificationFilter[] {filter,};
 	}
 
 
 	/**
-	 * {@inheritDoc}
-	 * 
-	 * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#validateValue(org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent)
-	 * 
-	 */
-	public Diagnostic validateValue(IPropertiesEditionEvent event) {
-		Diagnostic ret = Diagnostic.OK_INSTANCE;
-		if (event.getNewValue() != null) {
-			try {
-				if (NavigationViewsRepository.SmartNavigationSample.Properties.name == event.getAffectedEditor()) {
-					Object newValue = event.getNewValue();
-					if (newValue instanceof String) {
-						newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+		 * {@inheritDoc}
+		 * 
+		 * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#validateValue(org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent)
+		 * 
+		 */
+		public Diagnostic validateValue(IPropertiesEditionEvent event) {
+			Diagnostic ret = Diagnostic.OK_INSTANCE;
+			if (event.getNewValue() != null) {
+				try {
+					if (NavigationViewsRepository.SmartNavigationSample.Properties.name == event.getAffectedEditor()) {
+						Object newValue = event.getNewValue();
+						if (newValue instanceof String) {
+							newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+						}
+						ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
 					}
-					ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
-				}
-				if (NavigationViewsRepository.SmartNavigationSample.Properties.firstModelNavigationSingleValue == event.getAffectedEditor()) {
-					Object newValue = event.getNewValue();
-					if (newValue instanceof String) {
-						newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+					if (NavigationViewsRepository.SmartNavigationSample.Properties.firstModelNavigationSingleValue == event.getAffectedEditor()) {
+						Object newValue = event.getNewValue();
+						if (newValue instanceof String) {
+							newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+						}
+						ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
 					}
-					ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
-				}
-				if (NavigationViewsRepository.SmartNavigationSample.Properties.firstModelNavigationMultiValue == event.getAffectedEditor()) {
-					Object newValue = event.getNewValue();
-					if (newValue instanceof String) {
-						newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+					if (NavigationViewsRepository.SmartNavigationSample.Properties.firstModelNavigationMultiValue == event.getAffectedEditor()) {
+						Object newValue = event.getNewValue();
+						if (newValue instanceof String) {
+							newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+						}
+						ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
 					}
-					ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
-				}
-				if (NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationSingleValue == event.getAffectedEditor()) {
-					Object newValue = event.getNewValue();
-					if (newValue instanceof String) {
-						newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+					if (NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationSingleValue == event.getAffectedEditor()) {
+						Object newValue = event.getNewValue();
+						if (newValue instanceof String) {
+							newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+						}
+						ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
 					}
-					ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
-				}
-				if (NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValue == event.getAffectedEditor()) {
-					Object newValue = event.getNewValue();
-					if (newValue instanceof String) {
-						newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+					if (NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValue == event.getAffectedEditor()) {
+						Object newValue = event.getNewValue();
+						if (newValue instanceof String) {
+							newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+						}
+						ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
 					}
-					ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
-				}
-				if (NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationSingleValue2 == event.getAffectedEditor()) {
-					Object newValue = event.getNewValue();
-					if (newValue instanceof String) {
-						newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+					if (NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationSingleValue2 == event.getAffectedEditor()) {
+						Object newValue = event.getNewValue();
+						if (newValue instanceof String) {
+							newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+						}
+						ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
 					}
-					ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
-				}
-				if (NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValue2 == event.getAffectedEditor()) {
-					Object newValue = event.getNewValue();
-					if (newValue instanceof String) {
-						newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+					if (NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValue2 == event.getAffectedEditor()) {
+						Object newValue = event.getNewValue();
+						if (newValue instanceof String) {
+							newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+						}
+						ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
 					}
-					ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
-				}
-				if (NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValueFilter == event.getAffectedEditor()) {
-					Object newValue = event.getNewValue();
-					if (newValue instanceof String) {
-						newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+					if (NavigationViewsRepository.SmartNavigationSample.Properties.secondModelNavigationMultiValueFilter == event.getAffectedEditor()) {
+						Object newValue = event.getNewValue();
+						if (newValue instanceof String) {
+							newValue = EEFConverterUtil.createFromString(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), (String)newValue);
+						}
+						ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
 					}
-					ret = Diagnostician.INSTANCE.validate(EefnrPackage.eINSTANCE.getAbstractSample_Name().getEAttributeType(), newValue);
+				} catch (IllegalArgumentException iae) {
+					ret = BasicDiagnostic.toDiagnostic(iae);
+				} catch (WrappedException we) {
+					ret = BasicDiagnostic.toDiagnostic(we);
 				}
-			} catch (IllegalArgumentException iae) {
-				ret = BasicDiagnostic.toDiagnostic(iae);
-			} catch (WrappedException we) {
-				ret = BasicDiagnostic.toDiagnostic(we);
 			}
+			return ret;
 		}
-		return ret;
-	}
-
+	
 
 	
 	/**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/AnotherSubtypePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/AnotherSubtypePropertiesEditionProvider.java
index 091cd1f..db99635 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/AnotherSubtypePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/AnotherSubtypePropertiesEditionProvider.java
@@ -10,28 +10,28 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.navigation.AnotherSubType;
-import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
-
-import org.eclipse.emf.eef.navigation.components.AnotherSubtypeBasePropertiesEditionComponent;
-import org.eclipse.emf.eef.navigation.components.AnotherSubtypePropertiesEditionComponent;
-import org.eclipse.emf.eef.navigation.components.SubtypeBasePropertiesEditionComponent;
-import org.eclipse.emf.eef.navigation.components.SubtypePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.navigation.AnotherSubType;
+import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
+
+import org.eclipse.emf.eef.navigation.components.AnotherSubtypeBasePropertiesEditionComponent;
+import org.eclipse.emf.eef.navigation.components.AnotherSubtypePropertiesEditionComponent;
+import org.eclipse.emf.eef.navigation.components.SubtypeBasePropertiesEditionComponent;
+import org.eclipse.emf.eef.navigation.components.SubtypePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/AttributeNavigationSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/AttributeNavigationSamplePropertiesEditionProvider.java
index ae2247b..44897db 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/AttributeNavigationSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/AttributeNavigationSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.navigation.AttributeNavigationSample;
-import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
-
-import org.eclipse.emf.eef.navigation.components.AttributeNavigationSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.navigation.AttributeNavigationSample;
+import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
+
+import org.eclipse.emf.eef.navigation.components.AttributeNavigationSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/DeferedFlatReferencesTableSampleEditorPropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/DeferedFlatReferencesTableSampleEditorPropertiesEditionProvider.java
index 0021e6d..d3cc0fa 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/DeferedFlatReferencesTableSampleEditorPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/DeferedFlatReferencesTableSampleEditorPropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.navigation.DeferedFlatReferenceTableEditorSample;
-import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
-
-import org.eclipse.emf.eef.navigation.components.DeferedFlatReferencesTableSampleEditorPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.navigation.DeferedFlatReferenceTableEditorSample;
+import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
+
+import org.eclipse.emf.eef.navigation.components.DeferedFlatReferencesTableSampleEditorPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/DeferedReferencesTableSampleEditorPropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/DeferedReferencesTableSampleEditorPropertiesEditionProvider.java
index 711da47..95d14e4 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/DeferedReferencesTableSampleEditorPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/DeferedReferencesTableSampleEditorPropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.navigation.DeferedReferenceTableEditorSample;
-import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
-
-import org.eclipse.emf.eef.navigation.components.DeferedReferencesTableSampleEditorPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.navigation.DeferedReferenceTableEditorSample;
+import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
+
+import org.eclipse.emf.eef.navigation.components.DeferedReferencesTableSampleEditorPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/ElementPropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/ElementPropertiesEditionProvider.java
index bc29968..f01f148 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/ElementPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/ElementPropertiesEditionProvider.java
@@ -10,27 +10,27 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.navigation.Element;
-import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
-
-import org.eclipse.emf.eef.navigation.components.ElementBasePropertiesEditionComponent;
-import org.eclipse.emf.eef.navigation.components.ElementPropertiesEditionComponent;
-import org.eclipse.emf.eef.navigation.components.NamedElementPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.navigation.Element;
+import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
+
+import org.eclipse.emf.eef.navigation.components.ElementBasePropertiesEditionComponent;
+import org.eclipse.emf.eef.navigation.components.ElementPropertiesEditionComponent;
+import org.eclipse.emf.eef.navigation.components.NamedElementPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/FirstModelNavigationSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/FirstModelNavigationSamplePropertiesEditionProvider.java
index 99116fe..d7fcb04 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/FirstModelNavigationSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/FirstModelNavigationSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.navigation.FirstModelNavigation;
-import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
-
-import org.eclipse.emf.eef.navigation.components.FirstModelNavigationSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.navigation.FirstModelNavigation;
+import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
+
+import org.eclipse.emf.eef.navigation.components.FirstModelNavigationSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/NamedElementPropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/NamedElementPropertiesEditionProvider.java
index 94016bd..06eebda 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/NamedElementPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/NamedElementPropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-import org.eclipse.emf.eef.eefnr.NamedElement;
-
-import org.eclipse.emf.eef.navigation.components.NamedElementPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+import org.eclipse.emf.eef.eefnr.NamedElement;
+
+import org.eclipse.emf.eef.navigation.components.NamedElementPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/NavigationEEFAdapterFactory.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/NavigationEEFAdapterFactory.java
index 5399fee..bfd5fbd 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/NavigationEEFAdapterFactory.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/NavigationEEFAdapterFactory.java
@@ -10,15 +10,15 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-
-import org.eclipse.emf.eef.eefnr.navigation.util.NavigationAdapterFactory;
-
-import org.eclipse.emf.eef.references.providers.AbstractSamplePropertiesEditionProvider;
-
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+
+import org.eclipse.emf.eef.eefnr.navigation.util.NavigationAdapterFactory;
+
+import org.eclipse.emf.eef.references.providers.AbstractSamplePropertiesEditionProvider;
+
 import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/OwnerPropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/OwnerPropertiesEditionProvider.java
index 4f702ba..369edb3 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/OwnerPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/OwnerPropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
-import org.eclipse.emf.eef.eefnr.navigation.Owner;
-
-import org.eclipse.emf.eef.navigation.components.OwnerPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
+import org.eclipse.emf.eef.eefnr.navigation.Owner;
+
+import org.eclipse.emf.eef.navigation.components.OwnerPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SecondModelNavigationSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SecondModelNavigationSamplePropertiesEditionProvider.java
index e922fc0..7e3328c 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SecondModelNavigationSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SecondModelNavigationSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
-import org.eclipse.emf.eef.eefnr.navigation.SecondModelNavigation;
-
-import org.eclipse.emf.eef.navigation.components.SecondModelNavigationSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
+import org.eclipse.emf.eef.eefnr.navigation.SecondModelNavigation;
+
+import org.eclipse.emf.eef.navigation.components.SecondModelNavigationSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SmartModelNavigationSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SmartModelNavigationSamplePropertiesEditionProvider.java
index 5dab2c5..2f1d763 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SmartModelNavigationSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SmartModelNavigationSamplePropertiesEditionProvider.java
@@ -10,27 +10,27 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
-import org.eclipse.emf.eef.eefnr.navigation.SmartModelNavigationSample;
-
-import org.eclipse.emf.eef.navigation.components.SmartModelNavigationSamplePropertiesEditionComponent;
-import org.eclipse.emf.eef.navigation.components.SmartModelNavigationSampleSmartNavigationSampleOnglet2PropertiesEditionComponent;
-import org.eclipse.emf.eef.navigation.components.SmartModelNavigationSampleSmartNavigationSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
+import org.eclipse.emf.eef.eefnr.navigation.SmartModelNavigationSample;
+
+import org.eclipse.emf.eef.navigation.components.SmartModelNavigationSamplePropertiesEditionComponent;
+import org.eclipse.emf.eef.navigation.components.SmartModelNavigationSampleSmartNavigationSampleOnglet2PropertiesEditionComponent;
+import org.eclipse.emf.eef.navigation.components.SmartModelNavigationSampleSmartNavigationSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SubtypePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SubtypePropertiesEditionProvider.java
index 3797646..c262257 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SubtypePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/navigation/providers/SubtypePropertiesEditionProvider.java
@@ -10,27 +10,27 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.navigation.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
-import org.eclipse.emf.eef.eefnr.navigation.Subtype;
-
-import org.eclipse.emf.eef.navigation.components.OwnerPropertiesEditionComponent;
-import org.eclipse.emf.eef.navigation.components.SubtypeBasePropertiesEditionComponent;
-import org.eclipse.emf.eef.navigation.components.SubtypePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.navigation.NavigationPackage;
+import org.eclipse.emf.eef.eefnr.navigation.Subtype;
+
+import org.eclipse.emf.eef.navigation.components.OwnerPropertiesEditionComponent;
+import org.eclipse.emf.eef.navigation.components.SubtypeBasePropertiesEditionComponent;
+import org.eclipse.emf.eef.navigation.components.SubtypePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/AbstractEnabledSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/AbstractEnabledSamplePropertiesEditionProvider.java
index 2c310f0..5c52a4a 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/AbstractEnabledSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/AbstractEnabledSamplePropertiesEditionProvider.java
@@ -10,27 +10,27 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.references.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.references.AbstractEnabledSample;
-import org.eclipse.emf.eef.eefnr.references.ReferencesPackage;
-
-import org.eclipse.emf.eef.references.components.AbstractEnabledSampleBasePropertiesEditionComponent;
-import org.eclipse.emf.eef.references.components.AbstractEnabledSamplePropertiesEditionComponent;
-import org.eclipse.emf.eef.references.components.AbstractSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.references.AbstractEnabledSample;
+import org.eclipse.emf.eef.eefnr.references.ReferencesPackage;
+
+import org.eclipse.emf.eef.references.components.AbstractEnabledSampleBasePropertiesEditionComponent;
+import org.eclipse.emf.eef.references.components.AbstractEnabledSamplePropertiesEditionComponent;
+import org.eclipse.emf.eef.references.components.AbstractSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/AbstractSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/AbstractSamplePropertiesEditionProvider.java
index e43b291..6c95e21 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/AbstractSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/AbstractSamplePropertiesEditionProvider.java
@@ -10,25 +10,25 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.references.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.AbstractSample;
-import org.eclipse.emf.eef.eefnr.EefnrPackage;
-
-import org.eclipse.emf.eef.references.components.AbstractSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.AbstractSample;
+import org.eclipse.emf.eef.eefnr.EefnrPackage;
+
+import org.eclipse.emf.eef.references.components.AbstractSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/ReferenceEnabledSamplePropertiesEditionProvider.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/ReferenceEnabledSamplePropertiesEditionProvider.java
index e45d739..a9b4c8a 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/ReferenceEnabledSamplePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/ReferenceEnabledSamplePropertiesEditionProvider.java
@@ -10,27 +10,27 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.references.providers;
 
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.eef.eefnr.references.ReferenceEnabledSample;
-import org.eclipse.emf.eef.eefnr.references.ReferencesPackage;
-
-import org.eclipse.emf.eef.references.components.AbstractSamplePropertiesEditionComponent;
-import org.eclipse.emf.eef.references.components.ReferenceEnabledSampleBasePropertiesEditionComponent;
-import org.eclipse.emf.eef.references.components.ReferenceEnabledSamplePropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
-
-import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
-
-import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
-
-import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
-
-import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
-
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.eef.eefnr.references.ReferenceEnabledSample;
+import org.eclipse.emf.eef.eefnr.references.ReferencesPackage;
+
+import org.eclipse.emf.eef.references.components.AbstractSamplePropertiesEditionComponent;
+import org.eclipse.emf.eef.references.components.ReferenceEnabledSampleBasePropertiesEditionComponent;
+import org.eclipse.emf.eef.references.components.ReferenceEnabledSamplePropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
+
+import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext;
+
+import org.eclipse.emf.eef.runtime.impl.utils.EEFUtils;
+
+import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
+
+import org.eclipse.emf.eef.runtime.providers.impl.PropertiesEditingProviderImpl;
+
 import org.eclipse.jface.viewers.IFilter;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/ReferencesEEFAdapterFactory.java b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/ReferencesEEFAdapterFactory.java
index 7226d33..384787d 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/ReferencesEEFAdapterFactory.java
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.edit/src-gen/org/eclipse/emf/eef/references/providers/ReferencesEEFAdapterFactory.java
@@ -10,15 +10,15 @@
  *******************************************************************************/
 package org.eclipse.emf.eef.references.providers;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-
-import org.eclipse.emf.eef.eefnr.references.util.ReferencesAdapterFactory;
-
-import org.eclipse.emf.eef.navigation.providers.NamedElementPropertiesEditionProvider;
-
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+
+import org.eclipse.emf.eef.eefnr.references.util.ReferencesAdapterFactory;
+
+import org.eclipse.emf.eef.navigation.providers.NamedElementPropertiesEditionProvider;
+
 import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider;
 
 /**
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.editor/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.eef.tests.nonreg.editor/META-INF/MANIFEST.MF
index 3f47cf3..0b5871b 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.editor/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.editor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.eef.tests.nonreg.editor;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.eef.eefnr.presentation.EefnrEditorPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.editor/pom.xml b/tests/org.eclipse.emf.eef.tests.nonreg.editor/pom.xml
index d540664..7c7b5d3 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.editor/pom.xml
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.editor/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.tests.nonreg.editor</artifactId>
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.junit/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.eef.tests.nonreg.junit/META-INF/MANIFEST.MF
index bcaac6f..5223085 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.junit/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.junit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Junit
 Bundle-SymbolicName: org.eclipse.emf.eef.tests.nonreg.junit
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Require-Bundle: org.eclipse.emf.eef.runtime,
  org.eclipse.ui,
  org.eclipse.core.runtime,
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg.junit/pom.xml b/tests/org.eclipse.emf.eef.tests.nonreg.junit/pom.xml
index 5e822ed..159b183 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg.junit/pom.xml
+++ b/tests/org.eclipse.emf.eef.tests.nonreg.junit/pom.xml
@@ -16,7 +16,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.tests.nonreg.junit</artifactId>
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.eef.tests.nonreg/META-INF/MANIFEST.MF
index 26b56a1..a9f9b3a 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.eef.tests.nonreg/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.eef.tests.nonreg;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/tests/org.eclipse.emf.eef.tests.nonreg/pom.xml b/tests/org.eclipse.emf.eef.tests.nonreg/pom.xml
index d9ad6c6..6e2a5e4 100644
--- a/tests/org.eclipse.emf.eef.tests.nonreg/pom.xml
+++ b/tests/org.eclipse.emf.eef.tests.nonreg/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.eef.tests.nonreg</artifactId>
diff --git a/tests/org.eclipse.emf.examples.eef.edit/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.examples.eef.edit/META-INF/MANIFEST.MF
index b9403e2..2068efa 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.examples.eef.edit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.examples.eef.edit;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.samples.conference.provider.ConferenceEditPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/tests/org.eclipse.emf.examples.eef.edit/pom.xml b/tests/org.eclipse.emf.examples.eef.edit/pom.xml
index 264cad9..b582f04 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/pom.xml
+++ b/tests/org.eclipse.emf.examples.eef.edit/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.examples.eef.edit</artifactId>
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceBasePropertiesEditionComponent.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceBasePropertiesEditionComponent.java
index 2bfa07f..545d3d6 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceBasePropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceBasePropertiesEditionComponent.java
@@ -237,4 +237,6 @@
 
 	
 
+	
+
 }
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceLocalisationPropertiesEditionComponent.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceLocalisationPropertiesEditionComponent.java
index 273c3cd..31f46f2 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceLocalisationPropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceLocalisationPropertiesEditionComponent.java
@@ -285,4 +285,6 @@
 
 	
 
+	
+
 }
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceParticipantsPropertiesEditionComponent.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceParticipantsPropertiesEditionComponent.java
index 4844f5f..75d8205 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceParticipantsPropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceParticipantsPropertiesEditionComponent.java
@@ -257,4 +257,6 @@
 
 	
 
+	
+
 }
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceTalksAndTopicsPropertiesEditionComponent.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceTalksAndTopicsPropertiesEditionComponent.java
index d804df1..6bdddbc 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceTalksAndTopicsPropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/ConferenceTalksAndTopicsPropertiesEditionComponent.java
@@ -314,4 +314,6 @@
 
 	
 
+	
+
 }
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/PersonBasePropertiesEditionComponent.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/PersonBasePropertiesEditionComponent.java
index 97ecdc4..578b656 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/PersonBasePropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/PersonBasePropertiesEditionComponent.java
@@ -337,4 +337,6 @@
 
 	
 
+	
+
 }
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/PersonPresencePropertiesEditionComponent.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/PersonPresencePropertiesEditionComponent.java
index 47d03a5..298b76b 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/PersonPresencePropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/PersonPresencePropertiesEditionComponent.java
@@ -231,4 +231,6 @@
 
 	
 
+	
+
 }
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/RoomPropertiesEditionComponent.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/RoomPropertiesEditionComponent.java
index b6f8c92..184e4d9 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/RoomPropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/RoomPropertiesEditionComponent.java
@@ -219,4 +219,6 @@
 
 	
 
+	
+
 }
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/SitePropertiesEditionComponent.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/SitePropertiesEditionComponent.java
index 94449bd..517d8fa 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/SitePropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/SitePropertiesEditionComponent.java
@@ -304,4 +304,6 @@
 
 	
 
+	
+
 }
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/TalkPropertiesEditionComponent.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/TalkPropertiesEditionComponent.java
index 3b4ded2..8bb69d7 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/TalkPropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/TalkPropertiesEditionComponent.java
@@ -434,4 +434,6 @@
 
 	
 
+	
+
 }
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/TopicPropertiesEditionComponent.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/TopicPropertiesEditionComponent.java
index 85b46e7..3a66e6c 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/TopicPropertiesEditionComponent.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/components/TopicPropertiesEditionComponent.java
@@ -263,4 +263,6 @@
 
 	
 
+	
+
 }
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/parts/forms/PresencePropertiesEditionPartForm.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/parts/forms/PresencePropertiesEditionPartForm.java
index cecf83a..1824a1d 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/parts/forms/PresencePropertiesEditionPartForm.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/parts/forms/PresencePropertiesEditionPartForm.java
@@ -270,6 +270,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		assists.setContentProvider(contentProvider);
 		assists.setInput(settings);
+		assistsBusinessFilters.clear();
+		assistsFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(ConferenceViewsRepository.Presence.Talks.assists);
 		if (eefElementEditorReadOnlyState && assists.getTable().isEnabled()) {
 			assists.setEnabled(false);
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/parts/impl/PresencePropertiesEditionPartImpl.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/parts/impl/PresencePropertiesEditionPartImpl.java
index 17dddf2..8202379 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/parts/impl/PresencePropertiesEditionPartImpl.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/parts/impl/PresencePropertiesEditionPartImpl.java
@@ -258,6 +258,8 @@
 		ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
 		assists.setContentProvider(contentProvider);
 		assists.setInput(settings);
+		assistsBusinessFilters.clear();
+		assistsFilters.clear();
 		boolean eefElementEditorReadOnlyState = isReadOnly(ConferenceViewsRepository.Presence.Talks.assists);
 		if (eefElementEditorReadOnlyState && assists.getTable().isEnabled()) {
 			assists.setEnabled(false);
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/ConferencePropertiesEditionProvider.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/ConferencePropertiesEditionProvider.java
index 9412339..fdcba00 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/ConferencePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/ConferencePropertiesEditionProvider.java
@@ -153,7 +153,7 @@
 	 * Provides the filter used by the plugin.xml to assign part forms.
 	 */
 	public static class EditionFilter implements IFilter {
-		
+	
 		/**
 		 * {@inheritDoc}
 		 * 
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/PersonPropertiesEditionProvider.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/PersonPropertiesEditionProvider.java
index baceefa..5073071 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/PersonPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/PersonPropertiesEditionProvider.java
@@ -141,7 +141,7 @@
 	 * Provides the filter used by the plugin.xml to assign part forms.
 	 */
 	public static class EditionFilter implements IFilter {
-		
+	
 		/**
 		 * {@inheritDoc}
 		 * 
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/RoomPropertiesEditionProvider.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/RoomPropertiesEditionProvider.java
index 7fa59a6..c9647f6 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/RoomPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/RoomPropertiesEditionProvider.java
@@ -134,7 +134,7 @@
 	 * Provides the filter used by the plugin.xml to assign part forms.
 	 */
 	public static class EditionFilter implements IFilter {
-		
+	
 		/**
 		 * {@inheritDoc}
 		 * 
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/SitePropertiesEditionProvider.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/SitePropertiesEditionProvider.java
index 8e97d5d..948bb7f 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/SitePropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/SitePropertiesEditionProvider.java
@@ -134,7 +134,7 @@
 	 * Provides the filter used by the plugin.xml to assign part forms.
 	 */
 	public static class EditionFilter implements IFilter {
-		
+	
 		/**
 		 * {@inheritDoc}
 		 * 
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/TalkPropertiesEditionProvider.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/TalkPropertiesEditionProvider.java
index 076b2d5..4cd8069 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/TalkPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/TalkPropertiesEditionProvider.java
@@ -134,7 +134,7 @@
 	 * Provides the filter used by the plugin.xml to assign part forms.
 	 */
 	public static class EditionFilter implements IFilter {
-		
+	
 		/**
 		 * {@inheritDoc}
 		 * 
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/TopicPropertiesEditionProvider.java b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/TopicPropertiesEditionProvider.java
index 885a5a6..0992201 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/TopicPropertiesEditionProvider.java
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/TopicPropertiesEditionProvider.java
@@ -134,7 +134,7 @@
 	 * Provides the filter used by the plugin.xml to assign part forms.
 	 */
 	public static class EditionFilter implements IFilter {
-		
+	
 		/**
 		 * {@inheritDoc}
 		 * 
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/conferenceMessages.properties b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/conferenceMessages.properties
index 091d592..7f7f24b 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/conferenceMessages.properties
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/conferenceMessages.properties
@@ -23,7 +23,7 @@
 SitePropertiesEditionPart_PropertiesGroupLabel=Properties
 RoomPropertiesEditionPart_PropertiesGroupLabel=Properties
 Conference_ReadOnly=This property is read only
-Conference_Part_Title=Conference
+Conference_Part_Title=Base
 Localisation_ReadOnly=This property is read only
 Localisation_Part_Title=Localisation
 Participants_ReadOnly=This property is read only
@@ -31,17 +31,17 @@
 TalksAndTopics_ReadOnly=This property is read only
 TalksAndTopics_Part_Title=Talks and Topics
 Person_ReadOnly=This property is read only
-Person_Part_Title=Person
+Person_Part_Title=Base
 Presence_ReadOnly=This property is read only
 Presence_Part_Title=Presence
 Talk_ReadOnly=This property is read only
-Talk_Part_Title=Talk
+Talk_Part_Title=Base
 Topic_ReadOnly=This property is read only
-Topic_Part_Title=Topic
+Topic_Part_Title=Base
 Site_ReadOnly=This property is read only
-Site_Part_Title=Site
+Site_Part_Title=Base
 Room_ReadOnly=This property is read only
-Room_Part_Title=Room
+Room_Part_Title=Base
 ConferencePropertiesEditionPart_NameLabel=Name : 
 ConferencePropertiesEditionPart_OverviewLabel=Overview : 
 LocalisationPropertiesEditionPart_PlaceLabel=Place : 
diff --git a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/conferenceMessages_fr.properties b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/conferenceMessages_fr.properties
index f7915c2..0b43f6d 100644
--- a/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/conferenceMessages_fr.properties
+++ b/tests/org.eclipse.emf.examples.eef.edit/src-gen/org/eclipse/emf/samples/conference/providers/conferenceMessages_fr.properties
@@ -23,7 +23,7 @@
 SitePropertiesEditionPart_PropertiesGroupLabel=Properties
 RoomPropertiesEditionPart_PropertiesGroupLabel=Properties
 Conference_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
-Conference_Part_Title=Conference
+Conference_Part_Title=Base
 Localisation_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
 Localisation_Part_Title=Localisation
 Participants_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
@@ -31,17 +31,17 @@
 TalksAndTopics_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
 TalksAndTopics_Part_Title=Talks and Topics
 Person_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
-Person_Part_Title=Person
+Person_Part_Title=Base
 Presence_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
 Presence_Part_Title=Presence
 Talk_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
-Talk_Part_Title=Talk
+Talk_Part_Title=Base
 Topic_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
-Topic_Part_Title=Topic
+Topic_Part_Title=Base
 Site_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
-Site_Part_Title=Site
+Site_Part_Title=Base
 Room_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
-Room_Part_Title=Room
+Room_Part_Title=Base
 ConferencePropertiesEditionPart_NameLabel=Name : 
 ConferencePropertiesEditionPart_OverviewLabel=Overview : 
 LocalisationPropertiesEditionPart_PlaceLabel=Place : 
diff --git a/tests/org.eclipse.emf.examples.eef.editor/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.examples.eef.editor/META-INF/MANIFEST.MF
index 422f2a5..1f97394 100644
--- a/tests/org.eclipse.emf.examples.eef.editor/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.examples.eef.editor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.examples.eef.editor;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.samples.conference.presentation.ConferenceEditorPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/tests/org.eclipse.emf.examples.eef.editor/pom.xml b/tests/org.eclipse.emf.examples.eef.editor/pom.xml
index d16ccb2..1264908 100644
--- a/tests/org.eclipse.emf.examples.eef.editor/pom.xml
+++ b/tests/org.eclipse.emf.examples.eef.editor/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.examples.eef.editor</artifactId>
diff --git a/tests/org.eclipse.emf.examples.eef.tests.junit/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.examples.eef.tests.junit/META-INF/MANIFEST.MF
index e3213ac..75b903a 100644
--- a/tests/org.eclipse.emf.examples.eef.tests.junit/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.examples.eef.tests.junit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: test
 Bundle-SymbolicName: org.eclipse.emf.examples.eef.tests.junit
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.jdt.ui,
diff --git a/tests/org.eclipse.emf.examples.eef.tests.junit/pom.xml b/tests/org.eclipse.emf.examples.eef.tests.junit/pom.xml
index 6ed5d40..785e2be 100644
--- a/tests/org.eclipse.emf.examples.eef.tests.junit/pom.xml
+++ b/tests/org.eclipse.emf.examples.eef.tests.junit/pom.xml
@@ -16,7 +16,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.examples.eef.tests.junit</artifactId>
diff --git a/tests/org.eclipse.emf.examples.eef/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.examples.eef/META-INF/MANIFEST.MF
index 2e5d759..34b301c 100644
--- a/tests/org.eclipse.emf.examples.eef/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.examples.eef/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.examples.eef;singleton:=true
-Bundle-Version: 1.3.0.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/tests/org.eclipse.emf.examples.eef/pom.xml b/tests/org.eclipse.emf.examples.eef/pom.xml
index 2ab065e..957c761 100644
--- a/tests/org.eclipse.emf.examples.eef/pom.xml
+++ b/tests/org.eclipse.emf.examples.eef/pom.xml
@@ -17,7 +17,7 @@
 		<groupId>org.eclipse.emf</groupId>
 		<artifactId>org.eclipse.emf.eef.releng.parent</artifactId>
 		<relativePath>../../releng/org.eclipse.emf.eef.releng.parent</relativePath>
-		<version>1.3.0-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.emf.examples.eef</artifactId>
